在MATLAB中使用矩阵中的某些值并将其他值设置为零?

时间:2014-08-20 13:51:02

标签: matlab matrix

我试图仅绘制对应于某个角度的值,并将其他列归零。

基本上,我有一个带有仰角的行矩阵,我只想绘制5度以上的值,其余的只是零。它应该很简单,但我不知道为什么我无法让它发挥作用。

有了这个,我得到一个全零的矩阵......

vis(1,:)=ge(sat_elev(1,:),5*deg2rad);
if  vis(1,:)==1
    vis(1,:)=sat_elev(1,:);
end

2 个答案:

答案 0 :(得分:2)

如果您只需要绘制高于某个值但保持原始x轴位置的值:将不需要的值设置为NaN。这样绘制命令会忽略它们。

示例:

angles = [10 8 3 6 14 25 4 1 20 3 17];
threshold = 5;
angles(angles<=threshold) = NaN;
stem(angles) %// or plot(angles, 'o')

enter image description here

答案 1 :(得分:0)

这是一个虚拟向量的简单示例:

DummyAngles =

     1     4     7    15    16     4     2     9     2     4     5     5    10

1)设置元素&lt; 5到0

DummyAngles(DummyAngles < 5) = 0

DummyAngles =

     0     0     7    15    16     0     0     9     0     0     5     5    10

2)删除这些元素而不将它们设置为0:

DummyAngles(DummyAngles < 5) = []

DummyAngles =

     7    15    16     9     5     5    10

然后,您可以获得相应的y值,以便长度匹配。在您的情况下,第一个解决方案将确保长度相等。