breeze12345 发表于 2008-7-22 16:00

如何将两个数组随机组合

小弟是个初学者,想问下各位老大“如何将两个不同维数的数组随机组合起来”?只需要组合起来就行了,没有别的要求了。小弟先谢谢啦!

sigma665 发表于 2008-7-22 16:26

回复 楼主 的帖子

举个例子
什么样的数组,最后形成什么样

breeze12345 发表于 2008-7-22 16:36

数组A长度为p,数组B长度为n,新的数组C长度为p+n;其中的元素都来源于A和B,仅仅是位置的随机变化;我需要的就是由数组A和B能够得到大量新的数组,不知道我这样说有没有清楚。

w89986581 发表于 2008-7-22 17:19

呵呵,很清楚了。
C = ;
index = rand(1,p+n);
= sort(index);
C = C(index1);


没有安装matlab,随便写写吧。

breeze12345 发表于 2008-7-22 18:10

嗯 我用Matlab试了下可以的。
大体思路是不是这样的:现将两个较小的数组合并,再生成一个符合长度要求的随机数组,通过对该数组进行排序并返回对应元素的序号,而这个由序号组成的数组正好是随机的,然后再按照这个顺序将较大的数组重新排列,这样新的到数组就是随机的了。
小弟受教了,谢谢这位老大啦!

rocwoods 发表于 2008-7-22 19:26

C = ;
C=C(randperm(p+n))
其实本质算法差不多。楼主知道有个randperm函数就行了,用起来方便。

breeze12345 发表于 2008-7-23 14:24

收益非浅啊!希望各位老大以后多多提携小弟啊!再次感谢各位~
页: [1]
查看完整版本: 如何将两个数组随机组合