How to make datenum more efficient for large arrays?

3 Ansichten (letzte 30 Tage)
Marian
Marian am 29 Okt. 2013
Kommentiert: Cedric am 30 Okt. 2013
I am using textscan() to create an matrix that is 3,081,680 rows long. The very first column, A{1}, is the timestamp column, and it's elements look like this:
"2011-01-23 18:38:30"
I have tried using datenum() to convert this, but it is either taking too long or not working at all (longer than ten minutes). Is there a way I can make this more efficient?
Thanks!

Akzeptierte Antwort

Cedric
Cedric am 29 Okt. 2013
Bearbeitet: Cedric am 29 Okt. 2013
What is the purpose ultimately? Do you need an accurate time stamp which accounts for the date and time? If you were computing daily averages for 2011 only, for example, we could find a way to generate month/day IDs probably faster than DATENUM.
Otherwise, there are FEX contributions, e.g. this one by Jan Simon: http://www.mathworks.com/matlabcentral/fileexchange/28093-datestr2num
as well as a few relevant threads, among which: http://undocumentedmatlab.com/blog/datenum-performance/
  5 Kommentare
Marian
Marian am 30 Okt. 2013
Ah, datevec! I have been teaching myself MATLAB and did not know of this function, but I believe that I needed datevec to read arrays, as datenum or datestr2num would not work for type "cell". Thanks so much!
Cedric
Cedric am 30 Okt. 2013
You're welcome. Let me know if you go for an ACCUMARRAY approach for binning and need help with that.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Kelly Kearney
Kelly Kearney am 29 Okt. 2013
Are you specifying the date format? Particularly for large arrays,
datenum(A{1}, 'yyyy-mm-dd HH:MM:SS')
will be much faster than
datenum(A{1})
  3 Kommentare
Marian
Marian am 30 Okt. 2013
Error using datenum (line 179) DATENUM failed.
Error in onemin (line 9) time=datenum(A{1}, 'yyyy-mm-dd HH:MM:SS');
Caused by: Error using dtstr2dtnummx Failed on converting date string to date number.
This is the error I get using that, and I believe it is because of the double quotations around it.
Cedric
Cedric am 30 Okt. 2013
Use the following format: '"yyyy-mm-dd HH:MM:SS"'

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Dates and Time 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!

Translated by