How to resize array using a mask

5 visualizaciones (últimos 30 días)
Dubstep Dublin
Dubstep Dublin el 22 de Sept. de 2020
Editada: Image Analyst el 22 de Sept. de 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?

Respuestas (3)

Walter Roberson
Walter Roberson el 22 de Sept. de 2020
a(logical(cell2mat(mask)),:)

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

Image Analyst
Image Analyst el 22 de Sept. de 2020
Editada: Image Analyst el 22 de Sept. de 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), :)

Categorías

Más información sobre Author Block Masks en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by