Matlab:将日期导入的excel转换为可读格式?

时间:2017-12-16 00:50:50

标签: matlab date plot graph

我已从excel文件导入数据。 导入日期日期后,我的日期如下:

0.641238425925926
0.641932870370370
0.642627314814815
0.643321759259259
0.644016203703704

我使用了datestr(Time)。 我以我需要的格式获取日期数据,但数据不是表格格式。我需要绘制数据。所以我需要以表格格式提供所有内容。

然而,

datevec有效,它会分别给出小时,分钟。不确定如何将它们全部结合起来。

有解决方法吗?

1 个答案:

答案 0 :(得分:0)

如果您希望这些数字是完整日期(以及“完整日期”,我的意思是时间点,包括日期和时间),那么您在阅读Excel电子表格时可能会出错。但由于你只是说几小时和几分钟,我认为你走的是正确的道路,你只想考虑时间。

time = [
    0.641238425925926
    0.641932870370370
    0.642627314814815
    0.643321759259259
    0.644016203703704
];

time_str = cellstr(datestr(data,'HH:mm:ss'));

上面的代码将产生一个5乘1的字符向量数组,这对绘图效果不佳。正如您所说,datevec将分割您的日期时间值,它也不好。我建议您将您的值保留为当前的数字格式,并使用它们来定义x-axis点。绘制绘图后,您始终可以将刻度标签转换为更易读的格式:

time = [
    0.641238425925926
    0.641932870370370
    0.642627314814815
    0.643321759259259
    0.644016203703704
];

value = [
    1
    3
    4
    0
    2
];

plot(time,value);
datetick('x','HH:mm:ss');

正如您所看到的,由于四舍五入,这会失去秒精度。因此,要保持尽可能高的精度:

% ...

plot(time,value);
set(gca,'XTickLabel',cellstr(datestr(data,'HH:mm:ss')));