How to save datetime values in an array?
Mostra commenti meno recenti
Hi I am picking datetime value that is in this format
05-Feb-2015 18:02:47 05-Feb-2015 18:02:51 05-Feb-2015 18:02:55
I want to save it in an array so that later I can plot it. I am getting error to convert from datetime to double. What should i do?
6 Commenti
venky
il 24 Giu 2015
are u importing datetime values from excel sheet?
yashvin
il 24 Giu 2015
venky
il 24 Giu 2015
you are trying to store character into numeric arry(double) without any conversion...it doesnt have any meaning.if you want to store in double type first convert string { str_numeric = uint16(str) } into str_nemeric and store this str_numeric in double type array. please refer the below code for ur persual.
>> d1
d1 =
24-Jun-2015 13:50:32
>> d2=12345
d2 =
12345
>> whos Name Size Bytes Class Attributes
d1 1x20 40 char
d2 1x1 8 double
yashvin
il 25 Giu 2015
Guillaume
il 25 Giu 2015
Clarification, the d1 example is nothing to do with me and the OP (Venky) appears to confuse the char type with the datetime time. He (she?) also does not seem to understand string to numeric conversion.
Risposte (1)
If you're getting this error it's because you're trying to put a datetime object in a preinitialised array (possibly with zeros ?) of double. I presume you preinitialise the array, because the datetime objects are created / obtained in a loop.
You can't put datetime objects in a preinitialised array of double (you can only put doubles in there). The datetimes have to go in a preinitialised array of datetime. One simple way of initialising such an array:
darr = datetime(zeros(10,1), 0, 0); %a 10x1 array of datetime
Note that there will be a simpler way of doing this in the next version of matlab.
5 Commenti
yashvin
il 24 Giu 2015
Guillaume
il 24 Giu 2015
This kind of array is just a preinitialised array of datetimes. A datetime array always holds a time even if it does not display it. (For example if you type darr.Hour you will get the hours you stored in there)
You can change the display of the datetime with the Format property of the array. This will display the time:
darr.Format = 'default';
yashvin
il 25 Giu 2015
Guillaume
il 26 Giu 2015
A matrix can store data of only one type. So you can't put datetimes and float together, or float and integer together, or float and string together.
There are various kind of heterogeneous containers available in matlab, the simplest being cell arrays and tables
f1 = {d e}; %cell array
f2 = table(d, e, 'VariableNames', {'index', 'date'}); %table
Categorie
Scopri di più su Dates and Time in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!