Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

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

1 visualización (últimos 30 días)

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!

Respuestas (1)

Bob Thompson
Bob Thompson el 19 de Abr. de 2018
nanarray = isnan(A);
B(nanarray==1) = NaN;

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

  4 comentarios
Guillaume
Guillaume el 19 de Abr. de 2018
Well, the thing is that nanarray==1 returns the exact same logical array you started with.
Bob Thompson
Bob Thompson el 19 de Abr. de 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.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by