Matlab替换2个矩阵之间的元素

时间:2016-04-14 22:23:38

标签: arrays matlab matrix

我有两个矩阵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

如果我使用逻辑索引之类的东西,我该怎么做呢?

1 个答案:

答案 0 :(得分:4)

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

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

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

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

括号中的比较创建了0和1的数组,因此第一个乘法将A的所有元素设置为零,应该从B获取,第二个乘法设置B的所有元素应该从A获取0}}到零。