1

为这个愚蠢的问题道歉,数学不是我的强项。我正在尝试在 matlab 中设计一个函数,该函数根据 d 维中的正态分布 N(mu, sigma) 生成样本。这是我到目前为止的代码,

mu = [1 2];
Sigma = [1 .5; .5 2]; R = chol(Sigma);
z = repmat(mu,100,1) + randn(100,2)*R;

我通过阅读各种维基百科和谷歌文章发现了这一点,想知道它是否正确?提前致谢,

生锈的

4

1 回答 1

2

简短的回答 - 是的。

稍微长一点的答案 - 为什么不自己尝试呢?

>> z = repmat(mu,1000000,1) + randn(1000000,2)*R;
>> mean(z)
ans =
        1.001       2.0005
>> cov(z)
ans =
      0.99937      0.49942
      0.49942       2.0017
于 2012-05-24T17:12:18.963 回答