matlab产生随机数可以使用的方法:
1、均匀分布:
■ unifrnd (a, b, m, n)
产生m*n阶[a, b]均匀分布
■ unifrnd (a,b)
产生一个[a,b]的均匀随机数
示例:
2、rand (m, n);
产生m*n阶[0,1]均匀分布的随机数矩阵
■ rand(n);
产生n*n阶[0,1]均匀分布的随机数
示例:
3、binornd(n,p,[M,N,P,...])
产生的是服从二项分布的随机数,二项分布的参数为:n和p,
考虑一个打靶的例子,每枪命中率为p,共射击N枪,那么一共击中的次数就服从参数为(N,p)的二项分布。注意p要小于等于1且非负,N要为整数。
■ binornd(n,p,[M,N,P,...])
生成的随机数服从参数为(N,p)的二项分布,这些随机数排列成M*N*P... 阶矩阵。如果只写M,则生成M*M矩阵;
示例:
4、unidrnd(N,m,n)
产生m*n阶离散均匀分布的随机数矩阵;产生一个数值在1-N之间的mm*nn矩阵
示例:
5、exprnd (mu ,m, n)
产生m*n阶期望值为mu的指数分布的随机数矩阵
示例:
另外还有一些其他随机数,这里不再介绍,方法其本类似
实验中需要用exprnd 函数生成大量符合指数分布的随机数样本。于是 help exprnd
exprnd Random arrays from exponential distribution.
R = exprnd(MU) returns an array of random numbers chosen from the
exponential distribution withmean parameter MU. The size of R is
the size of MU.
R = exprnd(MU,M,N,...) or R = exprnd(MU,[M,N,...]) returns an
M-by-N-by-... array.
里边有个参数 Mu,虽然可以看到 MU 是 mean parameter,平均值。或者大约等于期望值,即 下列常见的指数分布概率密度函数中的 lambda 的倒数。
搜了一下网上有人讲,但是,最后的结论不是很清晰,
为了谨慎,我自己来做实验验证一下吧:
1)代码;2)效果;3)结论。
1) 将 Mu 设置为5,然后生成1e4个符合指数分布的数,统计平均值。
CNT_number = 10000;
Mu = 5;
a=exprnd(Mu, 1, CNT_number);
plot(a);
mean = sum(a) /CNT_number
2) 输出为:
mean =
5.0090
3)
exprnd 函数中参数 MU 指的是确实是均值,或者也可以理解为指数分布的期望值。
Davy_H
2014-7-14
本站违法和不良信息举报 联系邮箱: 5855973@qq.com
关于我们| 客服中心| 广告服务| 建站服务| 联系我们
中国焦点日报网 版权所有 沪ICP备2022005074号-20,未经授权,请勿转载或建立镜像,违者依法必究。