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

Qui*_*rty 3 matlab matrix octave

我有两个矩阵:

A = [0,1,1;1,0,0;0,0,0]
B = [3,0,0;0,3,3;4,4,4]
Run Code Online (Sandbox Code Playgroud)

并且我想用矩阵A中的0元素替换,该元素位于矩阵B中的相同位置.

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

result = [3,1,1;1,3,3;4,4,4]
Run Code Online (Sandbox Code Playgroud)

是否有为此目的的matlab功能,或者我必须自己编写一个?

问候

Den*_*din 6

这可以通过索引轻松实现:

idx = A == 0;
A(idx) = B(idx);
Run Code Online (Sandbox Code Playgroud)


nrz*_*nrz 5

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

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