## RANDPERMBREAK (v1.1, nov 2008)

Version 1.1.0.0 (2.53 KB) by
randomize the order of elements within sections of a vector
Updated 6 Nov 2008

R = RANDPERMBREAK(N, BP) returns a random permutation of the numbers 1
to N in sections, using the breakpoints specified by the indices BP.
If BP is a scalar, the first part of R contains a random permutation of
the numbers 1 to BP(1) and the second part a random permutation of the
numbers BP(1)+1 to N. Example:

randpermbreak(10,5)
% could return 1 5 3 4 2 10 8 7 6 9

If BP contains more indices, the indices are used in sorted order, and
R consists of a random permutation of 1 to BP(1), BP(1)+1 to BP(2), ...
and BP(N) to N. Example:

randpermbreak(12,[4 8])
% 3 2 4 1 6 5 7 8 12 9 11 10

RANDPERMBREAK(X,BP,'fixed') excludes the break point indiced from being
permuted. Example:

randpermbreak(7,4,'fixed')
% a random permutation of 1 to 3, 4 and a permutation of 5-7
% 3 1 2 4 7 5 6

This function can be used to arbitrarily permute a list of characters,
like in this example:
T = ['Uijt!jt!bo!jmmvtusbujpo!pg!uif!fggfdu!pg!qfsnvujoh!mfuuf' ...
'st!xjuijo!xpset!' char(14) '!fydfqu!gps!uif!gjstu!boe!mbtu!mfuufs!/' ...
'!Ep!zpv!uijol!uiftf!tfoufodft!' char(14) '!bsf!tujmm!sfbebcmf!@'] ;
i = find(T == 33) ;
r = randpermbreak(numel(T),[1 i-1 i i+1 numel(T)],'fixed') ;
char(T(r)-1)

Notes:
- Break point indices smaller than 1 or larger than the number of
elements in N are ignored.
- If BP is empty, the result will be a random permutation of the
numbers 1 to N, just like randperm.

shake, randswap, sortbreak (File Exchange)

### Cite As

Jos (10584) (2024). RANDPERMBREAK (v1.1, nov 2008) (https://www.mathworks.com/matlabcentral/fileexchange/22008-randpermbreak-v1-1-nov-2008), MATLAB Central File Exchange. Retrieved .

##### MATLAB Release Compatibility
Created with R13
Compatible with any release
##### Platform Compatibility
Windows macOS Linux
##### Categories
Find more on Shifting and Sorting Matrices in Help Center and MATLAB Answers