RANDPERMBREAK (v1.1, 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.
See also randperm, rand, sort
shake, randswap, sortbreak (File Exchange)
引用格式
Jos (10584) (2025). RANDPERMBREAK (v1.1, nov 2008) (https://ww2.mathworks.cn/matlabcentral/fileexchange/22008-randpermbreak-v1-1-nov-2008), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!