Plot datetime data from a cell array?

I have data set shown in fig. But I do not how to access to the data.
I try to use: plot(index{2:end, 1}, cell2mat(index(2:end, 2)), 'b'), but it does not work.

 Accepted Answer

Stephen23
Stephen23 on 25 Mar 2021
Edited: Stephen23 on 25 Mar 2021
A cell array containing lots of scalar arrays indicates that your data is arranged sub-optimally. You would be much better off using a table, or perhaps two separate homogenous vectors (i.e. a datetime array and a numeric array).
Converting to two homogenous arrays is probably the easiest way to plot the existing (badly designed) data:
dt = [index{2:end,1}];
ix = [index{2:end,2}];
plot(dt,ix)

4 Comments

Hi, Stephen, Thanks for your reply and links. It helps me a lot.
Hi, Stephen,
The orginal data is an .xlsx file. I loaded the data into matlab by using
index = readcell('index.xlsx', 'Sheet', 1);
which gives the table shown in the figure.
You mentioned the data is not well arranged. So I think you mean that I should convert index into a table?
@Yufei Cao: try using readtable, and then access the relevant "variables" by name:
T = readtable(..);
plot(T.date,T.index)
Hi, Stephen,
Thank you so much for the comment! The information is very useful!

Sign in to comment.

More Answers (0)

Asked:

on 25 Mar 2021

Commented:

on 25 Mar 2021

Community Treasure Hunt

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

Start Hunting!