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.

 Réponse acceptée

Stephen23
Stephen23 le 25 Mar 2021
Modifié(e) : Stephen23 le 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 commentaires

Yufei Cao
Yufei Cao le 25 Mar 2021
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?
Stephen23
Stephen23 le 25 Mar 2021
Modifié(e) : Stephen23 le 25 Mar 2021
@Yufei Cao: try using readtable, and then access the relevant "variables" by name:
T = readtable(..);
plot(T.date,T.index)
Yufei Cao
Yufei Cao le 25 Mar 2021
Hi, Stephen,
Thank you so much for the comment! The information is very useful!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by