Why can't I convert from datenum to datetime?
Show older comments
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?
Accepted Answer
More Answers (1)
per isakson
on 27 Apr 2020
Edited: per isakson
on 27 Apr 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 );
Categories
Find more on Dates and Time in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!