
关于matlab生成随机数的问题
我想用matlab生成两种随机数一种是生成服从泊松分布的100个随机数,每个值<=2,而且这一个数的和等于100.另一种是生成服从负二项分布的100个随机数,每个值<=4...
我想用matlab生成两种随机数
一种是生成服从泊松分布的100个随机数,每个值<=2,而且这一个数的和等于100.
另一种是生成服从负二项分布的100个随机数,每个值<=4,100个数的和也是等于100.
请问有没有高手能帮帮忙啊?真是非常感谢了,我真是很急着要结果。谢谢了!
你好,太感谢你了!不好意思还得再请问一下,另一个你说的类似可是对于我来说还是不知该怎么弄,我知道生成负二项分布用nbinrnd命令,可是这需要两个参数,r和p,对应到我这个问题的话该输入怎样的值呢? 展开
一种是生成服从泊松分布的100个随机数,每个值<=2,而且这一个数的和等于100.
另一种是生成服从负二项分布的100个随机数,每个值<=4,100个数的和也是等于100.
请问有没有高手能帮帮忙啊?真是非常感谢了,我真是很急着要结果。谢谢了!
你好,太感谢你了!不好意思还得再请问一下,另一个你说的类似可是对于我来说还是不知该怎么弄,我知道生成负二项分布用nbinrnd命令,可是这需要两个参数,r和p,对应到我这个问题的话该输入怎样的值呢? 展开
3个回答
展开全部
你这个已经不是随机数了,因为你的限制条件太多。
>> lambda=1;
random_sample1 = poissrnd(lambda,1,100);
random_sample1(random_sample1>2)=2;
for i=1:1:100
if (sum(random_sample1)<100)
if(random_sample1(i)<2)
random_sample1(i)=random_sample1(i)+1;
end
else
break
end
end
random_sample1
sum(random_sample1)
random_sample1 =
Columns 1 through 18
2 1 2 1 2 2 2 1 2 2 1 2 1 2 2 2 2 2
Columns 19 through 36
1 1 1 0 1 0 1 0 0 1 2 1 0 1 0 2 1 1
Columns 37 through 54
0 1 0 1 1 0 1 0 1 2 0 0 0 1 1 2 1 0
Columns 55 through 72
1 2 2 2 2 1 2 2 0 2 2 0 0 2 2 0 1 1
Columns 73 through 90
2 2 1 1 0 0 2 0 1 0 0 0 0 1 1 0 0 0
Columns 91 through 100
0 2 0 1 0 2 0 1 1 1
ans =
100
>>
另外一个类似。
>> lambda=1;
random_sample1 = poissrnd(lambda,1,100);
random_sample1(random_sample1>2)=2;
for i=1:1:100
if (sum(random_sample1)<100)
if(random_sample1(i)<2)
random_sample1(i)=random_sample1(i)+1;
end
else
break
end
end
random_sample1
sum(random_sample1)
random_sample1 =
Columns 1 through 18
2 1 2 1 2 2 2 1 2 2 1 2 1 2 2 2 2 2
Columns 19 through 36
1 1 1 0 1 0 1 0 0 1 2 1 0 1 0 2 1 1
Columns 37 through 54
0 1 0 1 1 0 1 0 1 2 0 0 0 1 1 2 1 0
Columns 55 through 72
1 2 2 2 2 1 2 2 0 2 2 0 0 2 2 0 1 1
Columns 73 through 90
2 2 1 1 0 0 2 0 1 0 0 0 0 1 1 0 0 0
Columns 91 through 100
0 2 0 1 0 2 0 1 1 1
ans =
100
>>
另外一个类似。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询