如何在MATLAB中设置秒级时间差为x轴并绘制测量值曲线图
Matlab绘图x轴显示相对时间解决方案
你遇到的问题是因为直接用Excel导入的原始日期序列绘图,且调用了datetick将x轴格式化为日期格式,需要先对时间列做差值转换,具体修改如下:
核心原理
Excel导入的时间格式数据在Matlab中默认存储为序列日期数:数值1代表完整的1天,要转换为秒级时间差,只需要将时间差乘以每日总秒数86400(24×3600)即可。
修改后完整代码
% 读取数据 V1 = xlsread('measured.xlsx','D4:D5295'); V2 = xlsread('measured.xlsx','E4:E5295'); CV = xlsread('measured.xlsx','F4:F5295'); t = xlsread('measured.xlsx','B4:B5295'); % 【新增】计算相对首个时间点的秒级差值 % 如果导入的t是字符串格式,先加一行t = datenum(t); 转成序列日期 t_rel = (t - t(1)) * 86400; % 绘图时用转换后的相对时间作为x轴 plot(t_rel, V1, t_rel, V2, t_rel, CV) % 【删除原来的datetick调用,现在x轴已是数值型秒数,不需要日期格式化】 title('Measurement') ylabel('Data [V]') xlabel('time [s]')
效果验证
以你给出的示例时间10:20:33、10:20:35、10:20:39为例,转换后的t_rel值正好为0、2、6,符合相对时间差的需求。
内容的提问来源于stack exchange,提问作者jacky
相关产品推荐
相关产品推荐

