Info

This question is closed. Reopen it to edit or answer.

How to turn values in one matrix corresponding to a specific element in another into NaN

1 view (last 30 days)

Hi!

If I have two matrices:

A=[1 2 NaN; 4 NaN 6; NaN 8 9]
B=[11 12 13; 14 15 16; 17 18 19]

And I want to turn the elements in B corresponding to the elements that are NaN in A also into NaN, how would I do it? Basically the end result I want is:

A=[1 2 NaN; 4 NaN 6; NaN 8 9]
B=[11 12 NaN; 14 NaN 16; 17 NaN 19]

But my matrices are a lot bigger and I need a systematic approach.

Thanks in advance!

Answers (1)

Bob Thompson
Bob Thompson on 19 Apr 2018
nanarray = isnan(A);
B(nanarray==1) = NaN;

Did you mean to have the B(3,2)=NaN instead of B(3,1)?

  4 Comments
Bob Thompson
Bob Thompson on 19 Apr 2018
Yes, and thinking about it in greater detail I can see how. The challenge for me when indexing in matlab is that I am a very visual person, and a lot of times with the logic indexing I don't take the time to look at every in between step, so I don't automatically know exactly what is happening. Therefore, in favor of being safe I tend to unintentionally build redundancies into my code to make sure it works. It's a dangerous habit, but one I simply haven't been coding long enough to break.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!