X = PARTPERM(A,IDX) randomly permutes the elements of vector A which are specified by vector IDX. That is, the elements A(IDX) are randomly interchanged with one another and the resulting (partially permuted) vector is returned. No permutation occurs when length(IDX) < 2.
By default, permutation is subject to the constraint that all elements specifed by IDX must appear in new positions ("derangement"). If you don't like this, use the following syntax:
X = PARTPERM(A,IDX,'allow') randomly permutes the elements of vector A which are specified by vector IDX, but allows indexed elements to remain unchanged if that is the natural result of the random permutation (i.e., if after permutation an element's new location happens to be the same as its original location).
David Fass (2021). PARTPERM -- Partial random permutation of a vector (https://www.mathworks.com/matlabcentral/fileexchange/5631-partperm-partial-random-permutation-of-a-vector), MATLAB Central File Exchange. Retrieved .
Inspired: Permute a grouped vector
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!