我有两个矩阵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
如果我使用逻辑索引之类的东西,我该怎么做呢?
答案 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}}到零。