So I have an excel file with a column of time in format HH:MM:SS. I imported this column into Matlab by choosing ''Number'' in the Import Data tool in Matlab and called this imported column''Time''. Then I used the datestr(Time,'HH:MM:SS') command to convert my imported column Time into the HH:MM:SS format but the problem is it converts it to a 300x8 char. The conversion is correct in that I get everything in HH:MM:SS format but it isn't in the regular format (with the symbol of 4 small squares in the workspace, instead I have a square with'abc' inside it). Not sure what char is exactly but I want it in 300x1 format so that I can plot it because at the moment I can't.
Any ideas?
Thanks

 Akzeptierte Antwort

Peter Perkins
Peter Perkins am 11 Mär. 2016

4 Stimmen

datestr is the (old) command to create strings that represent dates and times. So that's why you have a char array. If you import as numbers, you'll get time in units of days (that how Excel stores them), and so you might see something like
>> Time
Time =
0.04309
0.12784
0.21258
You have not provided enough information to go on, but as Ahmet says, since R2014b datetime and duration are probably a better choice than using datestr. One thing you might do is this:
>> d = days(Time)
d =
0.04309 days
0.12784 days
0.21258 days
>> d.Format = 'hh:mm:ss'
d =
01:02:03
03:04:05
05:06:07
>> plot(d,1:3)

Weitere Antworten (2)

Ahmet Cecen
Ahmet Cecen am 10 Mär. 2016
Bearbeitet: Ahmet Cecen am 10 Mär. 2016

0 Stimmen

If you are using the import tool, use datetime, as in import as datetime initially. Then you will be able to access individual components like Data.Hour etc.
Jean-Paul McCarthy
Jean-Paul McCarthy am 25 Apr. 2018

0 Stimmen

Copy the times to an .txt file then import them

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by