琳若舞 发表于 2007-12-4 16:11

如何在matlab实现随机排序

先谢谢大家~
具体问题是这样的,对一个一维数组,先进行随机排序,然后,再进行逆排序,使其回到原来的那个顺序。
请问,如何用matlab实现。

[ 本帖最后由 eight 于 2007-12-4 17:14 编辑 ]

eight 发表于 2007-12-4 17:14

原帖由 琳若舞 于 2007-12-4 16:11 发表 http://www.chinavib.com/forum/images/common/back.gif
先谢谢大家~
具体问题是这样的,对一个一维数组,先进行随机排序,然后,再进行逆排序,使其回到原来的那个顺序。
请问,如何用matlab实现。
随机排还要排回去?不懂

sugarcane 发表于 2007-12-4 18:16


SouNum = rand(1,5);
RandNum = randperm(length(SouNum));
% 正
NewNum = SouNum(RandNum);
% 反
OldNum = ones(1,5);
OldNum(RandNum) =NewNum;

琳若舞 发表于 2007-12-4 18:21

就是先随机排序,得到一个新的数组吧,然后对这个新的数组做相应的变换什么的,之后,再恢复到原来那个未排序前的顺序。我就是想问问如何还能回去。
我想这样:a(n)为数组
排序时:
t=randperm( n);
Z=permute(a(n),t);
然后,逆排序时:
y=permute(Z,t);
可是,好像不对。所以,请教~
页: [1]
查看完整版本: 如何在matlab实现随机排序