How can I obtain all possible combinations of a given vector

2 vues (au cours des 30 derniers jours)
I have a vector A=[1 1 1 0 0 1 1]. I want all the possible combinations as following....
A=[1 1 1 0 0 0 0; 1 1 0 0 0 1 0; 1 1 0 0 0 0 1; 0 1 1 0 0 1 0; 0 1 1 0 0 0 1; 0 1 0 0 0 1 1]
  4 commentaires
Stephen23
Stephen23 le 2 Oct 2020
Modifié(e) : Stephen23 le 2 Oct 2020
Why is
0 1 0 0 0 1 1
included, but
0 0 1 0 0 1 1
1 0 0 0 0 1 1
are excluded?
Although you write in your question that you want "all combinations", it seems that you actually want a subset of the combinations, but so far the rules to derive that subset are not clear to me.
subhashree priyadarshini
subhashree priyadarshini le 2 Oct 2020
Sir for my problem I need the second element of each row or column must be 1. Thats why I want to exclude the following rows...
0 0 1 0 0 1 1;
1 0 0 0 0 1 1;
1 0 1 0 0 0 1;
1 0 1 0 0 1 0;

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 2 Oct 2020
Brute force, not particularly efficient:
>> A = [1,1,1,0,0,1,1];
>> P = unique(bsxfun(@and,A,unique(perms(A),'rows')),'rows');
>> P(sum(P,2)~=3,:)=[]
P =
0 0 1 0 0 1 1
0 1 0 0 0 1 1
0 1 1 0 0 0 1
0 1 1 0 0 1 0
1 0 0 0 0 1 1
1 0 1 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 0 0 1
1 1 0 0 0 1 0
1 1 1 0 0 0 0
  3 commentaires
Stephen23
Stephen23 le 2 Oct 2020
P(P(:,2)~=1,:) = []
subhashree priyadarshini
subhashree priyadarshini le 2 Oct 2020
Thank u so much sir.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating 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