首页 > 解决方案 > 导入 MATLAB 时,时间列变为十进制形式

问题描述

我有来自 Excel 中 xlxs 文件的数据集,我必须将其导入 MATLAB。问题是每当我导入数据时,时间总是以十进制显示。

所以在这里,xlxs文件中的数据显示为HH:MM:SS的格式:

在此处输入图像描述

这是它在 MATLAB 的导入助手中的样子

在此处输入图像描述

我即将为它生成一个折线图,这就是它的样子:

在此处输入图像描述

这是我用来生成绘图的示例代码,其中我希望时间不以十进制形式显示。

datestr(Time,'HH:MM:SS');
title ('Particle Measurement for 02-20-2020 @ UPD')
plot(Time,PM10)
xlabel('Time')
ylabel('Particle Measurement')
hold on
plot(Time,PM1)
hold on
plot(Time,PM25)

标签: matlabdateplotmatlab-figure

解决方案


MATLAB 中的时间是datenum()值,它们是自 0000 年 1 月 0 日以来的十进制天数。所以你看到的东西正确的时间。您可以使用datestr(Time,'HH:mm:ss')获取时间字符串,并datetick('x','HH:mm')以小时为单位获取轴上的刻度线。

您的代码中的行datestr(Time,'HH:MM:SS');是多余的。MATLAB 必须花时间来评估日期字符串,然后……什么都没有。您不会将输出保存到变量中,也不会显示它(您用分号抑制了它)。

长话短说:datenum()绘图时使用值,并使datetick()轴标签正确。


推荐阅读