作业帮 > 综合 > 作业

进一步对matlab randperm(n)产生的序列进行限制

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/08/08 03:47:32
进一步对matlab randperm(n)产生的序列进行限制
一个matlab小问题,n=10;y = randperm(n)
如果,我原始序列是1 2 3 4 5 6 7 8 9 10,我想随机产生的序列不要离开自己原始位置超过3个.比如3本来是在第3个位置的,它最多能跑到1 2 3 4 5 6的位置上去,但是不能跑到更远的,比如7,否则它就移动了四个位置,有什么办法能实现我这种表达吗?
进一步对matlab randperm(n)产生的序列进行限制
试试下面的函数,可能会对你有帮助
function y = myrandperm(n,dd)
dx=n;
while(dx>dd)
y=randperm(n);
temp=abs(y-[1:n]);
dx=max(temp);
end
测试

myrandperm(10,3)
ans =
1 3 4 2 6 7 8 5 9 10