用MATLAB编程:生成1到n的一个随机排列

函数名为fun,
输入参数为一个整数n,
输出参数为一个向量ranvec,要求ranvec为整数1-n的一个随机排列。
比如
>>ranvec=fun(5)
ranvec =
1 5 3 4 2
>>ranvec=fun(12)
ranvec =
2 7 3 10 1 5 8 11 12 9 6 4
等等……

第1个回答  2009-03-16
function ranvec=fun(N)
ya=zeros(1,N);
xa=zeros(1,N);
for i=1:N
ya(i)=i; %记录数组的原始位置
end

for i=1:N
m=randint(1,1,[1,N-i+1]);
xa(i)=ya(m);
for j=m:N-i
ya(j)=ya(j+1);
end
end

ranvec=xa;本回答被提问者采纳
相似回答