Unique random permutations

Random sample (without replacement) from unique permutations of a vector or row-perms of a matrix
Updated 21 Apr 2010

View License

1. Determines number of available unique permutations.
2. Computes a random set of unique permutations, containing the identity permutation.

MATLAB's "perms" is unsuitable for vectors longer than about 11 elements (where the output takes over 3GB). John D'Errico's "uniqueperms" is much better if there are relatively few unique permutations, but is not well suited to randomly sampling a small subset of a large number of unique permutations. On the other hand, repeated calls to randperm can produce duplicates.

"uperms" aims to fill the niche between these, and is ideal for use with statistical permutation testing algorithms (where it is helpful to know if the identity is or isn't present, hence the choice to guarantee it here; just ask for k+1 and use 2:end if you don't want the identity).

Some other routines are also included to provide faster solutions in special cases of permutation test: simple correlation (perms_m); one-sample t-test (signs_m); and two-sample t-test (nchoosek_m). See also:

Cite As

Ged Ridgway (2024). Unique random permutations (https://www.mathworks.com/matlabcentral/fileexchange/27321-unique-random-permutations), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R14SP3
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Time Series in Help Center and MATLAB Answers

Inspired: nsumk

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes