using datenum over several years
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Say if I want to find the decimal day of year I would use:
clear all
StartDate = '2011-01-01 00:00';
EndDate = '2011-12-31 23:57';
Resolution = 60;
DateTime=datestr(datenum(StartDate,'yyyy-mm-dd HH:MM'):Resolution/(60*24):...
datenum(EndDate,'yyyy-mm-dd HH:MM'),...
'yyyy-mm-dd HH:MM');
DateTime=cellstr(DateTime);
JDay = cellfun(@(x)datenum(x),DateTime,'un',0);
DecDay = cell2mat(cellfun(@(x)x - datenum(2011,0,0),JDay,'un',0));
How is this achieved if the data extends over one year? So, say that my start data remains the same but my end data changes to '2013-12-31 23:57' how would I convert my time series into decimal day of year.
1 Kommentar
Oleg Komarov
am 22 Mär. 2012
Note that datenum(2011,0,0) is not '2011-01-01 00:00' but:
datestr(datenum(2011,0,0),'dd-mmm-yyyy HH:MM:SS PM')
ans =
31-Dec-2010 12:00:00 AM
Akzeptierte Antwort
Oleg Komarov
am 22 Mär. 2012
InDate = '2011-01-01 00:00';
FiDate = '2021-01-31 23:57';
% Create hourly spaced datetimes
v = datenum(InDate):1/24:datenum(FiDate);
% Shift with respect to InDate
v - datenum(InDate)
If you need to start from 1 just add '+ 1' to the last statement
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Time Series Objects finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!