MATLAB如何使用binornd函数生成二项分布随机数
【语法说明】
R=binornd(N,P):生成服从以N和P为参数的二项分布的随机数。N 为独立重复试验的次数,P 为一次试验中随机事件的发生概率。N与P可为同型向量、矩阵或多维数组,此时R返回同型的随机数组。如果N与P其中之一为标量,则该标量将被扩展为与另一个参数同型的数组。
R=binornd(N,P,m,n,…):若N与P为标量,则函数按N和P的值生成m×n×…大小的随机数组R。如果N与P均不为标量,则必须满足[m, n,…]=size(N),且N 与P 同型。如果其中之一为标量,另一个不是标量,则标量值将被扩展为与另一参数同型。
R=binornd(N,P,[m,n,…]):同R=binornd(N,P,m,n,…)。
【功能介绍】生成服从二项分布的随机数。假设ξ是一个随机事件,发生的概率为p,则不发生的概率q=1−p。做N次独立重复试验,事件ξ发生的次数应该在0~N 次之间。ξ发生k 次的概率为:
相当于一个二项式的展开项,二项分布因此得名。
【实例】生成服从(8, 0.6)二项分布的3×4 随机矩阵;生成N=9,P分别等于0.4、0.5、0.6的二项分布随机数,每种分布生成8个数。
>> a=binornd(8,0.6,3,4) % 服从二项分布(8, 0.6)的3×4随机矩阵。
a =
5 5 6 6
6 6 5 7
5 4 3 6
>> p=[0.4,0.5,0.6] % p=0.4,0.5,0.6
p =
0.4000 0.5000 0.6000
>> p=repmat(p,8,1) % 矩阵扩展
p =
0.4000 0.5000 0.6000
0.4000 0.5000 0.6000
0.4000 0.5000 0.6000
0.4000 0.5000 0.6000
0.4000 0.5000 0.6000
0.4000 0.5000 0.6000
0.4000 0.5000 0.6000
0.4000 0.5000 0.6000
>> b=binornd(9,p,8,3)
% 第一列为满足(9,0.4)二项分布的随机数,以此类推
b =
1 3 6
3 1 5
4 4 5
0 7 6
2 3 6
5 7 3
5 7 4
2 6 4
【实例讲解】当N和P不都是标量时,返回矩阵中的元素各自服从不同参数的二项分布。