声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1068|回复: 6

[编程技巧] 如何将两个数组随机组合

[复制链接]
发表于 2008-7-22 16:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

发表于 2008-7-22 16:26 | 显示全部楼层

回复 楼主 的帖子

举个例子
什么样的数组,最后形成什么样
 楼主| 发表于 2008-7-22 16:36 | 显示全部楼层
数组A长度为p,数组B长度为n,新的数组C长度为p+n;其中的元素都来源于A和B,仅仅是位置的随机变化;我需要的就是由数组A和B能够得到大量新的数组,不知道我这样说有没有清楚。
发表于 2008-7-22 17:19 | 显示全部楼层
呵呵,很清楚了。
C = [A,B];
index = rand(1,p+n);
[temp,index1] = sort(index);
C = C(index1);


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

评分

1

查看全部评分

 楼主| 发表于 2008-7-22 18:10 | 显示全部楼层
嗯 我用Matlab试了下可以的。
大体思路是不是这样的:现将两个较小的数组合并,再生成一个符合长度要求的随机数组,通过对该数组进行排序并返回对应元素的序号,而这个由序号组成的数组正好是随机的,然后再按照这个顺序将较大的数组重新排列,这样新的到数组就是随机的了。
小弟受教了,谢谢这位老大啦!
发表于 2008-7-22 19:26 | 显示全部楼层
C = [A,B];
C=C(randperm(p+n))
其实本质算法差不多。楼主知道有个randperm函数就行了,用起来方便。

评分

1

查看全部评分

 楼主| 发表于 2008-7-23 14:24 | 显示全部楼层
收益非浅啊!希望各位老大以后多多提携小弟啊!再次感谢各位~
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 07:34 , Processed in 0.054099 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表