用另一个矩阵的元素替换矩阵的某些元素[Matlab / Octave]

时间:2013-03-25 12:21:46

标签: matlab matrix octave

我有两个矩阵:

A = [0,1,1;1,0,0;0,0,0]
B = [3,0,0;0,3,3;4,4,4]

我想将矩阵A中的0元素替换为矩阵B中相同位置的元素。

在上面的例子中,结果矩阵如下所示:

result = [3,1,1;1,3,3;4,4,4]

是否有用于此目的的matlab功能,还是我必须自己编写一个?

此致

2 个答案:

答案 0 :(得分:6)

使用索引很容易实现:

idx = A == 0;
A(idx) = B(idx);

答案 1 :(得分:4)

使用逻辑寻址的Oneliner解决方案:

A(A == 0) = B(A == 0);