在MATLAB绘图中忽略NaN?

时间:2014-12-12 08:43:12

标签: matlab plot

假设我有

A = [1 2 3 nan 5];

如果我这样做

plot(1:5, A, 'o-');

我将使用以下蓝色部分。

enter image description here

如何实现红色部分?

更新

我很抱歉没有在第一张照片中直截了当,但 isnan()方法有助于跳过这些值,因为我需要绘制其中的许多行,其中一些人在某些随机位置缺少值(NaN)。所以我必须保持每一行的x轴一致。这就是为什么我不能简单地跳过NaN

2 个答案:

答案 0 :(得分:8)

不是超级优雅,但功能性:

idxs = ~isnan(A);
x = 1:5;
plot(x(idxs), A(idxs));

答案 1 :(得分:0)

x = linspace(1,10,10);
y = [1 2 3 nan 5 6 7 nan 9 10];
figure, plot(x,interp1(x,y,x,'spline'))