File Exchange

image thumbnail

Unique random permutations

version 1.0 (5.96 KB) by

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

8 Downloads

Updated

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:
http://www.fmrib.ox.ac.uk/fsl/randomise/index.html#theory

Comments and Ratings (1)

Dave

Dave (view profile)

MATLAB Release
MATLAB 7.1.0 (R14SP3)
Acknowledgements

Inspired: nsumk

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video