How to make datenum more efficient for large arrays?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Marian
el 29 de Oct. de 2013
Comentada: Cedric
el 30 de Oct. de 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!
0 comentarios
Respuesta aceptada
Cedric
el 29 de Oct. de 2013
Editada: Cedric
el 29 de Oct. de 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 comentarios
Cedric
el 30 de Oct. de 2013
You're welcome. Let me know if you go for an ACCUMARRAY approach for binning and need help with that.
Más respuestas (1)
Kelly Kearney
el 29 de Oct. de 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 comentarios
Ver también
Categorías
Más información sobre Dates and Time en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!