Convert vector of datenum values to datetime values
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Kyle Reagan
el 12 de Jun. de 2017
Respondida: Peter Perkins
el 20 de Jun. de 2017
The first column of a 3x2 matrix is datenum values. How do I convert each element to datetime? It looks as follows:
b = [736848] 'words'
[736849] 'words'
[736852] 'words'
I want to convert b(:,1) to either datestr or datetime form such that each row looks like
b = 02-Jun-2017.
Can anybody help me do this? I get an error if I try doing
datestr((b:,1)) or datetime(b(:,1))
0 comentarios
Respuesta aceptada
Stephen23
el 12 de Jun. de 2017
Editada: Stephen23
el 12 de Jun. de 2017
It seems that b is a cell array, and each cell in the first column contains one scalar datenum. You can use cell2mat to convert the first column of cells into a numeric vector:
vec = cell2mat(b(:,1));
datestr(vec)
datetime(vec)
Or vertcat:
vec = vertcat(b{:,1});
Más respuestas (1)
Peter Perkins
el 20 de Jun. de 2017
There's actually a direct conversion, once you lose the cell array:
vec = cell2mat(b(:,1));
datetime(vec,'ConvertFrom','datenum')
This is more than a convenience, there is some numeric magic to try to mitigate the fact that datenum uses a somewhat awkward unit of time, i.e. 1 day.
0 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!