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

在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

我试图只绘制与某个角度相对应的值,并将其他列归零

基本上,我有一个带仰角的行矩阵,我只想画出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     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;是的,这是一个比设置为零更好的方法。谢谢