【问题标题】:Does the randn function in matlab take values from a normally distributed populationmatlab中的randn函数是否从正态分布的总体中获取值
【发布时间】:2013-08-21 06:20:04
【问题描述】:

我对 matlab 中的 randn 函数有疑问。

"randn 生成随机数和矩阵,其元素正态分布,均值为 0,方差为 1。"

我从一个网站上得到了这个:http://www.math.ufl.edu/help/matlab/randn.html

我只是想知道这是否意味着生成的任何 randn matix 或 randn 向量的均值和方差将分别为 0 和 1?

谢谢

【问题讨论】:

    标签: matlab


    【解决方案1】:

    我会说“总体”均值为零,标准为一,但样本均值和标准可能有一些错误,因此不准确。样本越大,误差越小,因此越接近01 的值。试试这个来向自己说明这一点:

    n = randn(10,1);
    N  = randn(1000000,1);
    
    mean(n)
    std(n)
    
    mean(N)
    std(N)
    

    正如 Marc Claesen 所指出的,如果我们要保证样本均值和标准差分别为 0 和 1,那么样本本身就不可能是真正随机的。例如,为了保证均值为零,一旦生成了 10 个样本中的前 9 个,就不能随机选择第 10 个数字,因为只有一个数字可以使样本均值为零。它是唯一的,可以确定性地求解,因此样本不再是随机的。

    【讨论】:

    • 除此答案外,请考虑,如果您能保证 sample 均值和方差始终分别恰好是 01,则采样数不能是随机的(无论您考虑什么分布)。
    • @MarcClaesen 当然,我会把这个添加到答案中。
    • @MarcClaesen 这不是真的。它们不能独立地呈正态分布,但由于有(无限)多种方法可以实现这些时刻,因此数字肯定是随机的。 (对于 n >2 左右)
    • @Dan 的回答是正确的。补充一点,如果您特别想确保数组的均值和标准差正好为 0 和 1,您可以减去均值并除以样本的标准差:x = randn(1000,1); x = (x–mean(x))./std(x)
    • 在 MATLAB 文档中可以找到更好的短语:mathworks.com/help/matlab/ref/randn.html "... randn(n) 返回一个包含伪随机值的 n×n 矩阵绘制自标准正态分布..."
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 2012-12-05
    • 2015-12-08
    • 2014-01-28
    • 2011-04-12
    相关资源
    最近更新 更多