Matlab 随机生成数据的问题

原帖地址 http://emuch.net/bbs/viewthread.php?tid=3330652

求助随机生成数据的问题

比如有a,b,c,d,e,f等6个变量,已知它们的取值范围

70<=a=<90
5<=b=<15
1<=c=<10
0<=d=<5
0<=e=<1
0<=f=<0.5

且要求a+b+c+d+e+f=100

请高手赐教如何编一个高效的matlab程序生成100组这样的数据? 我编了一个,但是效率太低。小弟数学很差,高考不及格

本贴金币手工发放

lds588(+20)

★ ★ 臭水沟(金币+2): 谢谢应助~~ 2011-06-24 08:33:18 harp(金币+20): 学习到一些东西 2011-06-24 09:09:45

引用回帖:

Originally posted by harp at 2011-06-23 20:41:58: 比如有a,b,c,d,e,f等6个变量,已知它们的取值范围 70<=a=<90 5<=b=<15 1<=c=<10 0<=d=<5 0<=e=<1 0<=f=<0.5

且要求a+b+c+d+e+f=100

请高手赐教如何编一个高 …

function A=zrand(n)
A=zeros(n,6);
for i=1:n
    a=0;
    while (a<70)||(a>90)
        f=0.5*rand;
        e=rand;
        d=5*rand;
        c=1+9*rand;
        b=5+10*rand;
        a=100-(b+c+d+e+f);
    end
    A(i,:)=[a b c d e f];
end
调用
A=zrand(100)

其中100表示生成100组

本人原帖地址 http://emuch.net/bbs/viewthread.php?tid=3415178&fpage=1