【问题标题】:Applying threshold on both positive and negative elements of a matrix in matlab在matlab中对矩阵的正负元素应用阈值
【发布时间】:2016-05-31 22:35:24
【问题描述】:

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

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

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

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

怎么做?

我尝试了以下方法

A(A

它给了 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 值都消失了。 请帮忙..

【问题讨论】:

    标签: matlab matrix threshold


    【解决方案1】:

    你可以的

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

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

    编辑: 如果正如评论中所指出的,并且在您描述所需结果的方式中,您希望所有小于或等于 8 且大于或等于 -5 的值都为 0,那么答案是

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

    【讨论】:

    • A(A&lt;=8 &amp; A&gt;=-5) = 0 生成 OP 为他想要的答案所写的内容。
    【解决方案2】:

    嘿,试试 AND 操作

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

    这会给你想要的结果。

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多