How to delete from timeseries ?

Hello Everyone,
I am not really good at matlab and I am dealing with a time series data. The times series format is dd/mm/yyyy, I have attached a picture of the format.
My time series ranges from 1949 to 2017, my problem is if I want to delete a specific year in this time series, lets say 1949 along with data that comes with it...How do remove it from my time series?
I tried a bunch of time series commands such as delsample...but it didn't work. I don't know how to get about this.
If more information is needed please let me know,
Thank you.

 Respuesta aceptada

Walter Roberson
Walter Roberson el 16 de Sept. de 2017

0 votos

Assuming your data is in variable ts, and using the example of wanting to delete multiple years:
mask = ~ismember(year(ts.Time), [1949, 1950]);
new_ts = getsamples(ts, mask);

7 comentarios

John Doe
John Doe el 17 de Sept. de 2017
It's not working :/ it still gives me the same data ranging from 1949 to 2017
Walter Roberson
Walter Roberson el 17 de Sept. de 2017
It worked on the random data I created to test with. Perhaps you could attach some of your time series data for us to test against.
John Doe
John Doe el 18 de Sept. de 2017
Editada: Walter Roberson el 19 de Sept. de 2017
I am very sorry for the late reply.
I have attached the data that I am turning into a time series and below is the code:
ActualDays= 24564;
NHours = 24;
%%%Creating a time series
ts = timeseries(RAINVEC,1:ActualDays*NHours);
ts.Name = 'Hourly Rainfall [inch]';
ts.TimeInfo.Units = 'hours';
ts.TimeInfo.StartDate = datestr(dateaq(1)); % Set start date.
ts.TimeInfo.Format = 'mmm dd, yy'; % Set format for display on x-axis.
ts.Time = ts.Time - ts.Time(1); % Express time relative to the start date.
If you want to be able to select by particular year, you should avoid doing the
ts.Time = ts.Time - ts.Time(1)
line.
John Doe
John Doe el 19 de Sept. de 2017
I tried running what you suggested avoiding that line but it still doesn't work for some reason :/
Year = year(ts.Time/24 + datenum(ts.TimeInfo.StartDate));
mask = ~ismember(Year, 1949);
new_ts = getsamples(ts, mask);
John Doe
John Doe el 19 de Sept. de 2017
Thank You!! This works!
But what was my problem?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Type Conversion en Centro de ayuda y File Exchange.

Preguntada:

el 16 de Sept. de 2017

Comentada:

el 19 de Sept. de 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by