【问题标题】:Matlab replace element between 2 matrixMatlab替换2个矩阵之间的元素
【发布时间】:2016-04-15 17:29:38
【问题描述】:

我有两个矩阵 M x N,为简单起见,我们取 4x4:

矩阵 A:

1 4 2 5
4 5 8 2
3 4 5 6
2 3 5 8

矩阵 B:

10 11 12 13
56 11 23 45
34 44 33 25
25 63 35 78

如果矩阵 A 的某个元素大于 5,则我们从矩阵 B 更改它。

最后我们必须得到一个矩阵C:

1 4 2 5
4 5 23 2
3 4 5 25
2 3 5 78

我该怎么做,我应该使用逻辑索引之类的东西..

【问题讨论】:

    标签: arrays matlab matrix


    【解决方案1】:

    是的,您应该使用逻辑索引:

    C = A;
    C(C>5) = B(C>5);
    

    这意味着C 中的每个元素(即>5)都设置为B 中的相应值。

    C = A.*(A<=5) + B.*(A>5);
    

    括号中的比较创建了具有 0 和 1 的数组,因此第一次乘法将 A 的所有元素设置为零,应取自 B,第二次乘法将 B 的所有元素设置为零,即应取自A

    【讨论】:

      猜你喜欢
      • 2013-03-14
      • 2017-02-27
      • 2012-11-11
      • 1970-01-01
      • 2013-09-25
      • 2017-05-09
      • 2017-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多