使用从微秒导出的HH:MM:SSS.FFF(无日期)生成MATLAB绘图

使用从微秒导出的HH:MM:SSS.FFF(无日期)生成MATLAB绘图,matlab,plot,time,type-conversion,Matlab,Plot,Time,Type Conversion,已经回答了MATLAB中类似的转换HH:MM:SS.FFF和绘图问题,但是我已经尝试了所有这些解决方案,我的MATLAB绘图仍然没有绘制格式化的时间HH:MM:SS.FFF数据 我有以微秒为单位的数据: time = [2551501274.00000, 2552001200.00000, 2552502202.00000, 2553001184.00000, 2553501334.00000, 2554002022.00000] 然后我将其转换为HH:MM:SS.FFF,如下所示: micr

已经回答了MATLAB中类似的转换HH:MM:SS.FFF和绘图问题,但是我已经尝试了所有这些解决方案,我的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格式。然后下一步--尝试绘制我的时间数据--我得到一个错误,“第一个数据参数无效。”

我使用了datatick函数作为许多推荐的解决方案,但它不起作用

如何使用HH:MM:SS.FFF格式的数据生成绘图

通过执行
plot(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')
其中:


感谢您提供此解决方案,并指出我的错误所在。
plot(dayconvert,rand(size(dayconvert))) % dayconver is a double array
datetick('x','HH:MM:SS.FFF')