在matlab中对矩阵的正负元素应用阈值

时间:2016-02-19 11:10:13

标签: matlab matrix threshold

假设我有一个像这样的矩阵:

A = [ - 3 -4 -5 -6 0 2 3 3 4 5 8 9 10]

现在我想提取一个矩阵,其正值大于8,而所有其他+ ve值小于8将为零。并且它的-ve值将小于-5,所有其他-ve值将为零。这意味着这样的事情:

A = [0 0 0 -6 0 0 0 0 0 0 0 9 10]

怎么做?

我尝试过以下的事情

A(A< 8)= 0

它给出了 A = [0 0 0 0 0 0 0 0 0 0 8 9 10]

但我的负面价值消失了。

如果我尝试

A(A> -5)= 0

然后我得到了;

A = [0 0 -5 -6 0 0 0 0 0 0 0 0 0]

但是这里所有的+ ve值都消失了。 请帮助..

2 个答案:

答案 0 :(得分:2)

你可以做到

A(A<8 & A>-5) = 0

还显示在文档Find array elements that meet a condition

编辑: 如果,如评论中所指出的,以及如何描述您想要的结果,您希望所有小于或等于8且大于或等于-5的值为0,答案是

A(A<=8 & A>=-5) = 0

答案 1 :(得分:0)

Hy,尝试使用AND操作

A=[-3 -4 -5 -6 0 2 3 3 4 5 8 9 10];
A(A > -5 & A < 8) = 0;

这会给你想要的结果。

格尔茨