[PermOut, last] = NUPerms(PermIn) uses a simple and efficient iterative algorithm to return the permutation vector that follows PermIn in lexicographical order, discarding replicates.
This is much faster than finding all permutations with perms and then discarding replicates. Moreover, calling the function iteratively, one can explore all permutations of a given vector without having to store them in memory.
If PermIn is the last vector in lexicographical order, then PermOut=PermIn and last is set to 1, otherwise last is set to 0.
[P,last]=NUPerms([0 0 1])
P = 0 1 0
last = 0
[P,last]=NUPerms([1 0 0])
P = 1 0 0
last = 1
Cite As
Alessandro Colombo (2026). NUPerms (https://www.mathworks.com/matlabcentral/fileexchange/31184-nuperms), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.0.0.0 |
