uniqueperms

Version 1.0.0 (2,47 KB) von Jos (10584)
unique permutations of a set with repetitions
286 Downloads
Aktualisiert 27. Aug 2019

Lizenz anzeigen

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

Zitieren als

Jos (10584) (2024). uniqueperms (https://www.mathworks.com/matlabcentral/fileexchange/72552-uniqueperms), MATLAB Central File Exchange. Abgerufen.

Kompatibilität der MATLAB-Version
Erstellt mit R2019a
Kompatibel mit allen Versionen
Plattform-Kompatibilität
Windows macOS Linux
Kategorien
Mehr zu Logical finden Sie in Help Center und MATLAB Answers
Quellenangaben

Inspiriert von: 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!
Version Veröffentlicht Versionshinweise
1.0.0