using datenum over several years
1 view (last 30 days)
Show older comments
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 Comment
Oleg Komarov
on 22 Mar 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
Accepted Answer
Oleg Komarov
on 22 Mar 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 Comments
More Answers (0)
See Also
Categories
Find more on Dates and Time in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!