以格式化时间(min.sec)绘制关于分钟的绘图

Isr*_*sra 5 matlab

我试图在Matlab中绘制一些关于分钟而不是秒的数据作为格式化时间,即min.sec.

我有实时数据流在每个样本收到的地方,它的时间也以秒为单位发送.然后我就时间绘制它们.现在,由于我的会议时间大约是15分钟,所以我不能在时间上进行策划.因此我想在时间(min.sec)上绘制它.我尝试将接收时间除以60,但这给了我100分钟而不是60分钟(分钟增加0.9999而不是0.59).如何转换它以便我能够在几分钟内绘制时间图?

这就是我所说的0.99分钟而不是0.59分.正常分钟有60个分区而不是100分.在此输入图像描述

编辑: 我尝试了m7913d的建议,这就是我得到的.

  1. 首先我在不改变刻度的情况下以秒为单位绘制信号的时间(正常plot(t,v))

  2. 我添加datetick('x', 'mm:ss');到图中(Matlab 2015b不支持Xtick格式)

以下是结果的屏幕截图在此输入图像描述

以秒为单位的时间最多为80秒,当转换为分钟时,它应该给我1分20秒作为最大x轴限制.但这种情况并非如此.我尝试在矢量(即喜欢t=0:seconds(3):minutes(3))构造,但我无法将其链接到我的秒向量,当从串口接收新样本时,它将不断更新.谢谢

m79*_*13d 1

您可以使用xtickformat指定 x 标签所需的格式,如下所示:

% generate a random signal (in seconds)
t = 0:5:15*60;
y = rand(size(t));

plot(seconds(t),y) % plot your signal, making it explicit that the t is expressed in seconds
xtickformat('mm:ss') % specify the desired format of the x labels
Run Code Online (Sandbox Code Playgroud)

请注意,我使用了seconds返回duration对象的方法来向 Matlab 指示t以秒为单位的时间。

上述脚本的输出是(右图是左图的缩放版本):

在此输入图像描述 在此输入图像描述

R2016b 之前

可以使用datetime如下代替xtickformat

datetimes = datetime(0,0,0,0,0,t); % convert seconds to datetime
plot(datetimes,y)
datetick('x', 'MM:SS'); % set the x tick format (Note that you should now use capital M and S in the format string
xlim([min(datetimes) max(datetimes)])
Run Code Online (Sandbox Code Playgroud)