Generating a select set of permutations
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Mason Dyess
il 15 Ago 2019
Commentato: Mason Dyess
il 15 Ago 2019
So for example say I have a vector of length 17. I can fill each element with a -1, 0 or a 1, and I want MATLAB to output the permutations for this situation. However, I realize that trying to output all the permutations would be way too large and unfeasible (3^17 for my example), and I'm only really interested in the permutations that have a low number of non-zero elements (Ex: Only 4 of the 17 elements in the vector are a 1 or -1 and the rest are zeros). Is there a way to generate just this select set of permutations?
0 Commenti
Risposta accettata
Bruno Luong
il 15 Ago 2019
m = 17;
nnz = 4;
p=(nchoosek(1:m,nnz));
q=2*(dec2bin(0:2^nnz-1)-'0')-1;
C=repelem(p,size(q,1),1);
R=repmat((1:size(C,1))',1,size(C,2));
V=repmat(q,size(p,1),1);
A = accumarray([R(:) C(:)],V(:))
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Elementary Math 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!