Convert vector of datenum values to datetime values
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Stephen23
2017-6-12
编辑:Stephen23
2017-6-12
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});
更多回答(1 个)
Peter Perkins
2017-6-20
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dates and Time 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!