How to filter a binary matrix through a binary vector?

3 vues (au cours des 30 derniers jours)
Dipie11
Dipie11 le 30 Août 2018
Commenté : Dipie11 le 30 Août 2018
Say I have a binary vector E and a binary matrix S,
E = [0 1 1 0 0]
S = [1 1 0 1 0; 1 1 1 1 1; 1 0 0 1 1]
I'm looking to find a matrix S_E that 'filters' the matrix S through the vector E, such that the new filtered matrix S_E only contains the placeholder values of the matrix S where there are 1's in the matrix E. So the matrix S_E would look like,
S_E = [1 0 ; 1 1 ; 0 0]
Is there any way to implement this?? Any help would be greatly appreciated.
Thanks!

Réponse acceptée

Rik
Rik le 30 Août 2018
Modifié(e) : Rik le 30 Août 2018
Here are two ways to do this:
E = [0 1 1 0 0];
S = [1 1 0 1 0; 1 1 1 1 1; 1 0 0 1 1];
S_E=S(:,logical(E));
E = [0 1 1 0 0];
S = [1 1 0 1 0; 1 1 1 1 1; 1 0 0 1 1];
E_expanded=repmat(logical(E),size(S,1),1);
S_E=reshape(S(E_expanded),[],sum(E));

Plus de réponses (0)

Catégories

En savoir plus sur Resizing and Reshaping Matrices 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