Why can't I convert from datenum to datetime?
Afficher commentaires plus anciens
I am trying to convert a vector of datenums to datetime but for some reason having issues. The spreadsheet I am working with is 7gb so I will just include the top rows.
%Data (d) example:
7.3782e+05 79.064 80.016 75.023
7.3782e+05 79.137 80.478 75.399
7.3782e+05 78.144 79.663 75.5
d_times=d(:,1);
d_times=datetime(d_times, 'ConvertFrom', 'datenum'); %convert t column datenums to date and time
When I do this I get the error:
Error using datetime (line 658)
Input data must be a numeric array, a string array, a cell array containing character vectors, or a char matrix.
...but I can see that the first value is a datetime? Where am I going wrong?
Réponse acceptée
Plus de réponses (1)
per isakson
le 27 Avr 2020
Modifié(e) : per isakson
le 27 Avr 2020
The datetime statement is ok.
>> d_times=datetime( now, 'ConvertFrom', 'datenum');
>> d_times
d_times =
datetime
27-Apr-2020 05:27:05
>>
This script
%%
d = [
7.3782e+05 79.064 80.016 75.023
7.3782e+05 79.137 80.478 75.399
7.3782e+05 78.144 79.663 75.5
];
d1 = d(:,1);
%%
d_times = datetime( d1, 'ConvertFrom', 'datenum')
returns
d_times =
3×1 datetime array
30-Jan-2020 00:00:00
30-Jan-2020 00:00:00
30-Jan-2020 00:00:00
>>
I guess there is some kind of problem with your value of d(:,1)
Proposal: Replace
d_times=d(:,1);
by
d1 = d(:,1);
run the script and inspect the value of d1
Try
d1 = d( 1:end-2, 1 );
Catégories
En savoir plus sur Dates and Time dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!