24小时热门版块排行榜    

查看: 518  |  回复: 6
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

yujunhui

银虫 (著名写手)

[交流] 【求助】如何从数组中随即取出30%的数组元素?

如何从数组中随即取出30%的数组元素?
数组
a= [ 1   2    3     5    4    7    8    9    6    45     2     12    31     4    4    5     8   7     8   8    ]

如何从数组a中随即取出30%的数组元素?

函数是什么??
具体程序是什么?
回复此楼

» 猜你喜欢

安静
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

coolxh

木虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
sunxiao(金币+1,VIP+0):谢谢参与,欢迎常来 1-15 06:32
简单的解法,未排除重复元素

a=[ 1 2 3 5 4 7 8 9 6 45 2 12 31 4 4 5 8 7 8 8];
n=length(a);
ind=round(n*rand(n*0.3,1))
a_ind=a(ind)
引用回帖:
Originally posted by yujunhui at 2009-9-24 12:50:
如何从数组中随即取出30%的数组元素?
数组
a= [ 1   2    3     5    4    7    8    9    6    45     2     12    31     4    4    5     8   7     8   8    ]

如何从数组a中随即取出30%的数组元素?
...

4楼2009-09-25 15:28:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+1,VIP+0):Thanks for the hand. 9-24 16:46
a=[ 1 2 3 5 4 7 8 9 6 45 2 12 31 4 4 5 8 7 8 8];
n=length(a)
N=round(0.3*n)
array=nchoosek(a,N);
nn=ceil(nchoosek(n,N)*rand(1))
element=array(nn,: )

可能比较繁琐一点

[ Last edited by change0618 on 2009-9-24 at 14:15 ]
2楼2009-09-24 14:07:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hyde1022

铜虫 (小有名气)

★ ★ ★
nono2009(金币+1,VIP+0):Thanks for the hand. 9-24 16:46
kuhailangyu(金币+2,VIP+0):多多鼓励新虫的参与了,呵呵 9-24 22:21
学习了!!
我这个更繁琐 没有用nchoosek函数 而是纯靠生成随机数
nchoosek函数在数组元素15个以上的话就很难再fuction了 我的这个可以用在一两百个元素的数组 但是很麻烦
a=[1 2 3 5 4 7 8 9 6 45 2 12 31 4 4 5 8 7 8 8];
[row column]=size(a);
num=floor(column*0.3);
ind=zeros(1,num);
[j k]=size(unique(ind));
[u i]=size(ind);
while j~=u|k~=i
    rand('state',sum(100*clock));
    ind=rand(1,num)*column;
    ind=ceil(ind);
    ind=sort(ind);
    [j k]=size(unique(ind));
    [u i]=size(ind);
end
aa=a(ind)

[ Last edited by hyde1022 on 2009-9-24 at 15:35 ]
3楼2009-09-24 15:25:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hitzhang

木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+2,VIP+0):谢谢专家! 9-27 19:14
引用回帖:
Originally posted by yujunhui at 2009-9-24 12:50:
如何从数组中随即取出30%的数组元素?
数组
a= [ 1   2    3     5    4    7    8    9    6    45     2     12    31     4    4    5     8   7     8   8    ]

如何从数组a中随即取出30%的数组元素?
...

>> x=1:20

x =

     1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16    17    18    19    20

>> dividerand(x,0.30,0.7,0)

ans =

     6    11    12    16    19    20

>>
5楼2009-09-27 19:06:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见