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.

 采纳的回答

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 个评论

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!

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by