【发布时间】:2011-05-21 01:37:05
【问题描述】:
在 matlab 中很容易生成具有均值和标准差的正态分布随机向量。来自帮助 randn:
从均值为 1 和标准的正态分布生成值 偏差2。 r = 1 + 2.*randn(100,1);
现在我有一个协方差矩阵 C,我想生成 N(0,C)。
但是我该怎么做呢?
来自 randn 帮助: 从具有指定均值的二元正态分布生成值 向量和协方差矩阵。 亩=[1 2]; 西格玛 = [1 .5; .5 2]; R = 科尔(西格玛); z = repmat(mu,100,1) + randn(100,2)*R;
但我不知道他们在这里做什么。
【问题讨论】:
-
你不明白哪一部分?
mu是平均向量(在你的情况下为 0,所以不要使用它),Sigma是协方差矩阵,它们生成 100 对随机数。 -
我不明白 repmat 部分。是否也可以这样做:chol(C, 'lower') + randn(N,1);与 C 协方差矩阵
-
对不起,我想我现在明白了。 repmat 用于为 100 对随机数构建均值矩阵。
-
您可以使用统计工具箱中的 MVNRND 函数,请参阅此相关问题:stackoverflow.com/questions/4041866/gaussian-basis-function
-
@Donnie 或 Amro :您应该发布一个答案,以便 Derk 可以接受它,这个问题将被存档以供任何人查阅 :)
标签: matlab normal-distribution