
matlab randn是用来干什么的?
randn
产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
可是我用了下发现均值不为0
那randn是用来干什么的? 展开
这是产生标准正态分布的随机数或矩阵的函数,randn 是用来产生标准正态分布伪随机数的函数,也就是你说的均值为0,标准差σ = 1。
以下是该函数的用法:
Y = randn(n)
返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。
Y = randn(m,n) 或 Y = randn([m n])
返回一个m*n的随机项矩阵。
Y = randn(m,n,p,...) 或 Y = randn([m n p...])
产生随机数组。
Y = randn(size(A))
返回一个和A有同样维数大小的随机数组。
randn
返回一个每次都变化的数量。
总而言之,由于产生的是随机数序列,这里所说的均值为0,只是说这写随机数的分布期望值为0,而不是说这个序列的平均值就一定为0。如果你用randn产生一个很长的序列,再统计其分布情况,例如:a=randn(100000,1);hist(a,100);
a是个符合中心为0,标准差是1的正态分布随机数列,求a的平均值会是个很接近0的数,但不是0。
希望对你们有所帮助。
2014-02-23
randn 是用来产生标准正态分布伪随机数的函数,也就是你说的均值为0,标准差σ = 1。
你所谓的“发现均值不为0”是什么概念?既然是随机数,无论产生多少个,都只能算是样本,所谓均值,是对样本数量足够多的情况而言的。一般而言,样本数越大,其均值越接近0。就像抛硬币,照理说两面的概率各占一半,但只抛有限次很难保证刚好各占一般的。
广告 您可能关注的内容 |