Why slow conversion from date in Matlab time to day of year?
Mostra commenti meno recenti
I have a vector of dates in Matlab time convention which I need to convert to day of the year. The following code is slow (9 seconds) even though it is using builtin Matlab functions. What do you recommend to speed it up?
timeGmt = datenum(1996,1,1):1/24:now; % Long vector of dates covering many years
timeGmt = timeGmt'; % Change from row vector to column vector for compatibility in next line
yearDay = timeGmt - ...
datenum(str2num(datestr(timeGmt, 10)), 1, 1) ... % Subtract off first day of this year
+ 1; % Add a day so that first day of year is day 1
Risposta accettata
Più risposte (1)
Peter Perkins
il 18 Mag 2015
Modificato: Walter Roberson
il 19 Mag 2015
In R2014b or later, use datetime. On a not particularly fast Win7 machine:
>> timeGmt = '1-Jan-1996':hours(1):datetime('now');
>> tic, dayOfYear = day(timeGmt,'dayofyear'); toc
Elapsed time is 0.041145 seconds.
2 Commenti
Peter Perkins
il 3 Giu 2015
If you have R2014b or later, you have the day function. It is a method of the datetime class, which was introduced in R2014b.
Categorie
Scopri di più su Time Series Objects in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!