根据格式时间进行绘图”;hh:mm:ss“;在MATLAB中?

根据格式时间进行绘图”;hh:mm:ss“;在MATLAB中?,matlab,Matlab,我有一堆时间索引数据,我必须用MATLAB绘制 当前的时间格式如下 23:55:42,-147928.686833054 23:55:43,-147928.404621219 23:55:44,-147928.219419702 23:55:45,-147928.395802099 23:55:46,-147928.492812417 23:55:47,-147928.413440339 23:55:48,-147928.386982979 我只想绘制第二列,即值,与第一列,即时间相对应 我当

我有一堆时间索引数据,我必须用MATLAB绘制

当前的时间格式如下

23:55:42,-147928.686833054
23:55:43,-147928.404621219
23:55:44,-147928.219419702
23:55:45,-147928.395802099
23:55:46,-147928.492812417
23:55:47,-147928.413440339
23:55:48,-147928.386982979
我只想绘制第二列,即值,与第一列,即时间相对应

我当然可以把第一个时间点设为0,下一个时间点设为1,…,以此类推。然而,我希望坚持原来的时间安排

如何轻松处理这种时间类型?

打印后尝试属性“XTickLabel”

您可以将其与数据字符串单元格一起使用:

plot(second-column-values)
Times={'23:55:42','23:55:43',...}     
set(gca,'XTickLabel',Times)

使用转换时间值。以通常的方式创建X-Y图。并要求使用时间格式的标签

datetick('x', 13)
例如:

plot(datenum(a(:,1)), a(:,2));
datetick('x', 13)

这不会保留时间间隔。你说得对。我不知道你答案中的选项。如果有效,应该更好:)我不能对我的x值执行datenum,因为它是一个1*34267单元格。我应该将其转换为数组,然后再转换为datenum吗?@FarticlePilter:Try
cellfun(@datenum,x)
datenum('1:59:58','HH:MM:SS')和datenum('21:59:58','HH:MM:SS')都返回我7.3560e+05,这显然是不正确的。@FarticlePilter:。这些数字是以天为单位的,因此20小时(一天的5/6)的差异没有显示出来。但它就在那里。如果您不喜欢MATLAB附加今天的日期,请使用
mod(datenum('1:59:58','HH:MM:SS'),1)
将日期部分丢弃,只保留时间。@FarticlePilter:对不起!命令是
datetick
。MATLAB把我弄糊涂了,因为有一个工具箱有一个
dateaxis
命令,它做同样的事情。但是,
datetick
是我通常使用的,也是您想要的。