Converting time data to plot

I imported an excel file (xlsread) and the time data turned into decimal form. I wrote the following code get a what I think is called a character array of just times.
um_time = num(:,1);
theDate = char(datetime(num_time,'ConvertFrom','excel')); % or 'excel1904'
theTimes = theDate(:,end-7:end);
The output for theTimes variable looks like this
val =
19:17:10
19:17:10
19:17:10
19:17:10
....
The problem that I have is that I can't use the variable theTimes in a plot function.
How can I turn theTimes values into a column vector of values that I can use to plot?

回答 (1 件)

Adam Danz
Adam Danz 2019 年 9 月 10 日
編集済み: Adam Danz 2019 年 9 月 16 日

1 投票

After you convert to datetime, keep it in datetime format. There's no need to convert it to char.
From r2016b onward, you can use datetime objects in plot().
datetime(num_time,'ConvertFrom','excel')
Here's several of examples
[addendum]
If you're reading the dates in from excel you can read them in as datetime.
m = readmatrix('Dates.xlsx','OutputType','datetime');

2 件のコメント

Ryan McBurney
Ryan McBurney 2019 年 9 月 12 日
I figured out a different approach.
I used readtable() instead of xlsread. I used this code as well:
data = readtable(filename,'Range','A22:Y432');
data.Time = datetime(datevec(data.Time),'Format','HH:mm:ss.SSS');
The second line in the code solved my problem.
Thanks for the nudge in the right direction.
Adam Danz
Adam Danz 2019 年 9 月 12 日
編集済み: Adam Danz 2019 年 9 月 13 日
I just updated my answer to add another approach similar to yours.
If you're going to use readtable(), you could use the DateTimeType name-value input instead of doing the conversion in your comment above.

サインインしてコメントする。

カテゴリ

製品

リリース

R2016a

質問済み:

2019 年 9 月 10 日

編集済み:

2019 年 9 月 16 日

Community Treasure Hunt

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

Start Hunting!

Translated by