Effacer les filtres
Effacer les filtres

Convert vector of datenum values to datetime values

2 vues (au cours des 30 derniers jours)
Kyle Reagan
Kyle Reagan le 12 Juin 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))

Réponse acceptée

Stephen23
Stephen23 le 12 Juin 2017
Modifié(e) : Stephen23 le 12 Juin 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});
  1 commentaire
Kyle Reagan
Kyle Reagan le 12 Juin 2017
Thanks, Stephen! It works just as anticipated.

Connectez-vous pour commenter.

Plus de réponses (1)

Peter Perkins
Peter Perkins le 20 Juin 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.

Catégories

En savoir plus sur Dates and Time dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by