Quick n Dirty
Quick n Dirty

Reputation: 569

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

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

Upvotes: 4

Views: 10939

Answers (2)

nrz
nrz

Reputation: 10550

Oneliner solution using logical addressing:

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

Upvotes: 5

Dennis Jaheruddin
Dennis Jaheruddin

Reputation: 21563

This is easily achieved with indexing:

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

Upvotes: 7

Related Questions