24小时热门版块排行榜    

查看: 1157  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

harp

木虫 (正式写手)

[求助] 求助随机生成数据的问题

比如有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组这样的数据?
我编了一个,但是效率太低。小弟数学很差,高考不及格
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lds588

铁杆木虫 (著名写手)

愚钝

【答案】应助回帖

引用回帖:
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

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

其中笑脸处为:)
[url=http://weibo.com/u/2577306830?s=6uyXnP][img]http://service.t.sina.com.cn/widget/qmd/2577306830/fa2fdb00/1.png[/img][/url]
3楼2011-06-23 21:27:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

lds588

铁杆木虫 (著名写手)

愚钝

【答案】应助回帖

★ ★
臭水沟(金币+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组
[url=http://weibo.com/u/2577306830?s=6uyXnP][img]http://service.t.sina.com.cn/widget/qmd/2577306830/fa2fdb00/1.png[/img][/url]
2楼2011-06-23 21:26:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lds588

铁杆木虫 (著名写手)

愚钝

【答案】应助回帖

引用回帖:
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

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

CODE:
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

[url=http://weibo.com/u/2577306830?s=6uyXnP][img]http://service.t.sina.com.cn/widget/qmd/2577306830/fa2fdb00/1.png[/img][/url]
4楼2011-06-23 21:30:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

harp

木虫 (正式写手)

引用回帖:
Originally posted by lds588 at 2011-06-23 21:26:04:
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;
      ...

还请教一下,while循环的判断依据是a=100-b-c-d-e-f的值吧?
5楼2011-06-24 09:13:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见