Replace certain elements of matrix with elements of another matrix [Matlab / Octave]

matlab, matrix, octave

Solution

This is easily achieved with indexing:

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

Problem

I have two matrices: ``` A = [0,1,1;1,0,0;0,0,0] B = [3,0,0;0,3,3;4,4,4] ``` And I want to replace alle the 0-elements in matrix A, with the element, that is on the same position in matrix B. In the above example the result matrix would look like this: ``` result = [3,1,1;1,3,3;4,4,4] ``` Is there a matlab function for that purpose, or do I have to write one on my own? Regards

Original source