How to filter a binary matrix through a binary vector?

2 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)

Community Treasure Hunt

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

Start Hunting!

Translated by