在MATLAB中使用矩阵中的某些值,并将其他值设置为零?
我试图只绘制与某个角度相对应的值,并将其他列归零 基本上,我有一个带仰角的行矩阵,我只想画出5度以上的值,其余的归零。它应该很简单,但我不知道为什么我不能让它工作 用这个,我得到一个全为零的矩阵在MATLAB中使用矩阵中的某些值,并将其他值设置为零?,matlab,matrix,Matlab,Matrix,我试图只绘制与某个角度相对应的值,并将其他列归零 基本上,我有一个带仰角的行矩阵,我只想画出5度以上的值,其余的归零。它应该很简单,但我不知道为什么我不能让它工作 用这个,我得到一个全为零的矩阵 vis(1,:)=ge(sat_elev(1,:),5*deg2rad); if vis(1,:)==1 vis(1,:)=sat_elev(1,:); end 下面是一个使用此虚拟向量的简单示例: DummyAngles = 1 4 7 15 16
vis(1,:)=ge(sat_elev(1,:),5*deg2rad);
if vis(1,:)==1
vis(1,:)=sat_elev(1,:);
end
下面是一个使用此虚拟向量的简单示例:
DummyAngles =
1 4 7 15 16 4 2 9 2 4 5 5 10
1) 将元素<5设置为0
DummyAngles(DummyAngles < 5) = 0
DummyAngles =
0 0 7 15 16 0 0 9 0 0 5 5 10
DummyAngles(DummyAngles<5)=0
傻瓜=
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
DummyAngles(DummyAngles<5)=[]
傻瓜=
7 15 16 9 5 5 10
然后可以获得相应的y值,以便长度匹配。在您的情况下,第一种解决方案将确保长度相等。如果只需要绘制高于某个值但保持原始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')
角度=[10 8 3 6 14 25 4 1 20 3 17];
阈值=5;
角度(角度非常感谢你的回答。我的问题实际上是我没有转换回弧度,所以它都是零。呜呜。现在都修好了:)如果我有一个3x3,当小于5度时,我想使其他相应的值为NaN,怎么样?尝试过这个,但我认为我没有正确使用ISNAN。卫星高度(卫星高度<5*deg2rad)=NaN;sat_look_tcs=[sat_elev;sat_azim;range];如果ISNAN(sat_look_tcs(1,:))sat_look_tcs(2:3,:)=NaN;是的,这是一个比设置为零更好的方法。谢谢