我有一个矩阵,其中一些值有 -1
表示存在错误 . 通常我会使用 ylim([0 100])
在我的图表中不显示这些值,但是当使用折线图时,连接仍然会下降到这一点 . 我想要一个由线条组成的图表,而不是散点图 . 在绘制线时是否有一种忽略负值的简单方法,并且在MATLAB中使用绘图函数时仅连接正值?
我编写了一个小例子程序,其行为类似,但我使用的方式似乎有点"too complicated"我想知道是否有更简单的方法来实现这一点 . 它将值设置为 NaN
时工作正常,现在 x
和 y
值相同 . 但是,删除或整理向量中的值将导致不同数量的 x
和 y
值 .
我希望修改或标志或其他东西 .
x = 2*rand(10) - rand(10)
xx = 10:10:100;
figure;
for i=1:length(x)
for j=1:length(x(i,:))
if x(i,j) < 0
x(i,j) = NaN;
end
end
end
plot(xx,x)
请注意,这只是一个示例,整个代码太大,无法在此处发布 .
当具有非对应的 x
-值(使得绘图函数仅使用 1,2,3...
等等对应的 y
值)时,可以通过使用
plot(x(x>0))
在这种情况下,相应的值是不同的,在实际代码中它们是测量数据,这里我简单地使用第10步来简化 .
x = 2*rand(10) - rand(10)
xx = 10:10:100;
plot(xx,x(x>0))
上面的代码将出错,消息“Vectors必须是相同的长度” .
2 回答
这就像使用
NaN
而不是负值一样,只是原始矢量根本不被修改 . 您可能会注意到此解决方案是矢量化的 .Output:
现在你可以绘制c
您也可以直接执行此操作而不保存计算并进行修改 . 只是绘制它 .
plot(x(x>0))