如何在Matlab中绘制奇怪的时间戳

时间:2017-01-05 10:04:02

标签: matlab datetime plot matlab-figure

我有一个相当简单的任务。我只是需要做那样的事情

plot(stampy{1:5},data{2}(1:5))

但是,强烈{1:5} 我有五个单独的 ans 数据{2}(1:5)似乎好好策划。我试图循环 smth就像那样

cc=zeros(1,10);
for i=1:10
     cc(i) = stampy{i}
end

但它没有用。我不知道,这似乎是一项非常简单的任务。 有人可以提出解决方案吗? 我有这种形式的数据:

>> stampy{1:5}
ans =
21-Sep-2016 05:52:00
ans =
21-Sep-2016 05:53:00  
ans =
21-Sep-2016 05:54:00
ans =
21-Sep-2016 05:55:00
ans =
21-Sep-2016 05:56:00

>> data{2}(1:5)

ans =

  -32.3750
  -25.0000
  -25.0000
  -25.0000
  -25.0000

3 个答案:

答案 0 :(得分:3)

您可以使用datenum将每个日期转换为日期编号,并使用 this 作为x轴。然后,您可以使用datetick指定用于刻度线的格式。这样做的好处是它可以在任何版本的MATLAB上运行,并且可以处理非均匀间隔的日期。

plot(datenum(stampy), data{2}(1:5))
datetick('x', 'HH:MM:SS')

enter image description here

答案 1 :(得分:2)

如果要绘制时间轴,可以使用datetime类型的变量:

% the following line converts stampy to a time vector:
sy = datetime(stampy,'InputFormat','dd-MMM-yyyy HH:mm:ss');
plot(sy,data{2}(1:5))

答案 2 :(得分:2)

只需绘制数据并重命名Xticks,如下所示:

plot(data{2}(1:5));
set(gca,'XTick',1:5,'XTickLabel',{stampy{1:5}});

<强>输出:

output