gpt4 book ai didi

matlab - 以分钟为单位绘制格式化时间 (min.sec)

转载 作者:太空宇宙 更新时间:2023-11-03 19:47:26 28 4
gpt4 key购买 nike

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

我有实时数据流,在收到每个样本的地方,它的时间以秒为单位也被发送。然后我根据时间绘制它们。现在,由于我的 session 大约有 15 分钟,所以我无法根据时间进行规划。因此我想根据时间 (min.sec) 绘制它。我尝试将接收到的时间除以 60,但这给了我 100 个分割而不是 60 个分割的分钟(分钟在 0.9999 之后递增,而不是 0.59)。我如何转换它以便我能够以分钟为单位绘制相对于时间的图?

这就是我所说的 0.99 分之一分钟而不是 0.59 的意思。正常的一分钟有 60 个格,而不是 100 个格。enter image description here

编辑:我尝试了 m7913d 的建议,结果如下。

  1. 首先,我在不更改刻度的情况下绘制相对于以秒为单位的时间的信号(一个普通的plot(t,v))

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

这是结果的屏幕截图 enter image description here

以秒为单位的时间最多为 80 秒,当转换为分钟时,它应该给我 1 分 20 秒作为最大 x 轴限制。但这种情况并非如此。我试图构建一个 t 向量(即像 t=0:seconds(3):minutes(3))但是我无法将它链接到我的秒向量,它会随着新样本的出现而不断更新从串行端口接收。谢谢

最佳答案

您可以使用 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

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

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

enter image description here enter image description here

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)])

关于matlab - 以分钟为单位绘制格式化时间 (min.sec),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44612886/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com