仅绘制矢量的一部分

时间:2014-08-04 09:02:21

标签: matlab vector time plot

我有这样的矢量:

  

a = [1 2 0 0 3 4 0 5]

我想绘制这个载体,但摆脱了Os。所以,我试过这个:

> b = (a>0);
> c = a(b);
> plot(c);

情节很好我对时间轴不满意。在时间轴上,我现在有连续的步骤;但我希望它是从ai的{​​{1}}图的相应时间步长。所以,在这种情况下,我的时间表应如下所示:

c

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

只需用你的t定义一个变量,并在其上使用过滤器

a= [1 2 0 0 3 4 0 5]
t = 1:length(a)
idx=(a>0);
plot(t(idx), a(idx));

答案 1 :(得分:1)

find()完全符合您的要求,返回每个非零值的索引。

a= [1 2 0 0 3 4 0 5];
b=find(a);
plot(b,a(b))

如果你只想要正值,你也可以将它挂钩到find:

b=find(a>0);

答案 2 :(得分:1)

将不需要的a值设置为NaNplot忽略它们并插入NaN出现的行。

a(a==0)=NaN