生成具有HH:MM:SSS.FFF的MATLAB图解,该图解源自微秒且无日期

时间:2019-01-31 14:22:23

标签: matlab plot time type-conversion

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

我有几微秒的数据:

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

然后我将其转换为HH:MM:SS.FFF as:

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格式的数据生成图?

1 个答案:

答案 0 :(得分: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