使用HH生成MATLAB图:MM:SSS.FFF源自微秒且无日期

问题描述 投票:1回答:1

类似的转换HH:MM:SS.FFF和MATLAB中的绘图问题已得到解答,但我已经尝试了所有这些解决方案,我的MATLAB图仍未绘制格式化时间,HH:MM:SS.FFF数据。

我有微秒的数据:

time = [2551501274.00000,
2552001200.00000,
2552502202.00000,
2553001184.00000,
2553501334.00000,
2554002022.00000]

然后我把它转换为HH:MM:SS.FFF:

microconvert = time
dayconvert = microconvert / 86400000000 
time = datestr(dayconvert, 'HH:MM:SS.FFF')

我成功使用HH:MM:SS.FFF格式。然后下一步 - 试图绘制我的时间数据 - 我得到一个错误,“无效的第一个数据参数。”

plot(time)
datetick('x', 'HH:MM:SS.FFF');

我使用datatick函数推荐了许多解决方案,但它没有用。

如何生成我的数据格式为HH:MM:SS.FFF?

matlab plot time type-conversion
1个回答
2
投票

通过做plot(time)你正在绘制你的time矢量与其指数,即你的例子中的1:6。另外,因为你使用了datestr,你的time变量实际上是一个char数组,而不是double所以你无法绘制它:

>> whos time
Variables in the current scope:

   Attr Name        Size                     Bytes  Class
   ==== ====        ====                     =====  =====
        time        6x12                        72  char

Total is 72 elements using 72 bytes

你需要在你的时间向量上绘制其他东西,并确保你的时间向量是double数据类型:

plot(dayconvert,rand(size(dayconvert))) % dayconver is a double array
datetick('x','HH:MM:SS.FFF')

这使:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.