P = uniqueperms(V) returns all unique permutations of the N elements in the vector V. P is an array with M rows (see below) and each row of P is unique. The rows are in lexicographic order. V can be a numeric array, or cell array of strings.
Example:
uniqueperms([4 2 1 2]) % returns 12 unique permutions:
% [ 1 2 2 4 ; 1 2 4 2 ; 1 4 2 2 ; ... ; 4 2 1 2 ; 4 2 2 1]
% perms([3 2 1 2]) will return all 24 permutations of 4 elements.
uniqueperms([1 1 1 1 99]) % a 5-by-5 array, rather than a 120-by-5 array with multiple duplications
This function does not rely on perms to do the job. Similar functionality can be obtained using unique(perms(V),'rows'), but this will create a possibly large intermediate array with N! rows.
When V has J unique elements, each of which is repeated Kj times (j=1:J), then the number of unique permutations is N!/(K1!*..*KJ!)
Citation pour cette source
Jos (10584) (2024). uniqueperms (https://www.mathworks.com/matlabcentral/fileexchange/72552-uniqueperms), MATLAB Central File Exchange. Extrait(e) le .
Compatibilité avec les versions de MATLAB
Plateformes compatibles
Windows macOS LinuxCatégories
Tags
Remerciements
Inspiré par : nextperm(V, K), ALL PERMUTATIONS OF SEQUENCE
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
Version | Publié le | Notes de version | |
---|---|---|---|
1.0.0 |