使用从微秒导出的HH:MM:SSS.FFF(无日期)生成MATLAB绘图
已经回答了MATLAB中类似的转换HH:MM:SS.FFF和绘图问题,但是我已经尝试了所有这些解决方案,我的MATLAB绘图仍然没有绘制格式化的时间HH:MM:SS.FFF数据 我有以微秒为单位的数据:使用从微秒导出的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
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')