m1(m2 == 1), but with dimensions of m1 intact?

3 vues (au cours des 30 derniers jours)
Ulrik William Nash
Ulrik William Nash le 23 Août 2017
Commenté : Ulrik William Nash le 23 Août 2017
I have a matrix of 1's and 0'1, m2. I have another matrix with the same dimensions as m2, containing values (i.e., m1). Of these values, I am only interested in those where the corresponding value in m2 is 1. However, as an extra condition, I wish to create m3, which has the same dimensions as m1 and m2, and contains the selected values in the corresponding places, with all other places being NaN. I am stuck on how to do that without looping.

Réponse acceptée

Stephen23
Stephen23 le 23 Août 2017
Modifié(e) : Stephen23 le 23 Août 2017
Method one:
m3 = m1;
m3(m2~=1) = NaN;
Method two:
m3 = NaN(size(m1));
idx = m2==1;
m3(idx) = m1(idx);
Method three :
m3 = m2./m2.*m1;
  1 commentaire
Ulrik William Nash
Ulrik William Nash le 23 Août 2017
Method 3 is very neat. Thank you.

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by