How can I obtain all possible combinations of a given vector

2 visualizzazioni (ultimi 30 giorni)
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 Commenti
Stephen23
Stephen23 il 2 Ott 2020
Modificato: Stephen23 il 2 Ott 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 il 2 Ott 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;

Accedi per commentare.

Risposta accettata

Stephen23
Stephen23 il 2 Ott 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 Commenti

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by