【问题标题】:Could Matlab use system time as X axis value?Matlab 可以使用系统时间作为 X 轴值吗?
【发布时间】:2016-09-08 16:20:51
【问题描述】:

我有一个 3D 相机,它可以在命令 distance=function1(Device) 之后实时向 Matlab 提供有关物体距离的信息(我省略了这个功能,因为它在这里并不重要)。

我想制作一个程序,显示物体在时间变化时移动。

我已经成功使用了:

t1=clock;

while......(in a loop) 
  distance(i)=step(Device);
  t2=clock;
  times(i)=etime(t2,t1);
  plot(times,distance);
end

显示物体移动。但是,图中的X轴是比较时间,即x轴以0秒开始,以(t2-t1)秒结束。

现在我尝试找到一种方法将 X 轴更改为绝对时间或 cpu 时间。 如下图:

我想将比较时间(黑色字体)更改为绝对系统时间(红色字体)。

我尝试了“datetick”,但它不能正常工作? 有没有办法做到这一点?

【问题讨论】:

    标签: matlab time plot


    【解决方案1】:

    下面创建了一个不定时的字符串,绘制距离,然后尝试根据每次迭代的文本字符串更改标签。我在 MATLAB 中测试了它的一个简单实例。

    while ... (in a loop)
        distance(i)=step(Device);
        t2=clock;
        tint = int8(t2(4:6)))
        stamp{i} = strcat(int2str(tint(1)),':',int2str(tint(2)),':',int2str(tint(3)))
        plot(distance)
        set(gca,'XTick',1:i,'XTickLabel',stamp)
    end
    

    至于显示 AM 和 PM,好吧,你必须做一些额外的巫术,但根据时钟值,这应该是可能的。然后只需将 AM 或 PM 附加到 stamp{i} 分配。

    提示,如果 t2(4) > 12 您正在查看 PM。否则,上午。

    这样做的一个限制是,您执行的迭代次数越多,您的 X 轴就会变得越拥挤。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 2015-12-01
      • 1970-01-01
      相关资源
      最近更新 更多