How to resize array using a mask

16 vues (au cours des 30 derniers jours)
Dubstep Dublin
Dubstep Dublin le 22 Sep 2020
Modifié(e) : Image Analyst le 22 Sep 2020
I have got an array a = { 1 , 2 , 3 ; 4 , 5 , 6 ; 7 , 8 , 9 }
also have a mask, mask = { 1 ; 0 ; 1 }
If I do a*mask, I want the resulting array = { 1 , 2 , 3 ; 7 , 8 , 9 }
Any suggestions on how to implement this?

Réponses (3)

Walter Roberson
Walter Roberson le 22 Sep 2020
a(logical(cell2mat(mask)),:)

Ameer Hamza
Ameer Hamza le 22 Sep 2020
a = [1 , 2 , 3 ; 4 , 5 , 6 ; 7 , 8 , 9];
b = [ 1; 0; 1];
c = a(b==1, :);

Image Analyst
Image Analyst le 22 Sep 2020
Modifié(e) : Image Analyst le 22 Sep 2020
Assuming you're using double arrays...(since I see no need for you to be using cell arrays).
a = [1, 2, 3; 4, 5, 6; 7, 8, 9]
mask = [1; 0; 1]
masked_a = a(logical(mask), :)

Catégories

En savoir plus sur Author Block Masks dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by