-1

我是新手,所以请多多包涵。我正在尝试从具有以下参数的混合高斯模型生成数据点:

mixGaussTrue.mean = [-1 1.5];
mixGaussTrue.cov = reshape([0.5 0.25],1,1,2);

现在我有一个变量 h 来确定要使用的高斯。所以 h 要么是 1(第一个高斯)要么是 2。比如说如果 h 是 1,我如何从第一个高斯生成值,平均值为 -1,协方差为 0.5?

我不能使用内置函数,并且打算为高斯写方程。

所以我有

for i=1:300
    if h==1 
        data(1,i) = ( 1/( sqrt( 2*pi*mixGaussTrue.cov(:,:,1) ) ) ) * exp( - (((cData - 
        mixGaussTrue.mean(1,1))^2)/(2* mixGaussTrue.cov(:,:,1))) ) ;

非常感谢!

4

1 回答 1

1

看起来你的两个高斯是一维的。

无论如何,您可以使用randn()which 生成随机高斯变量:

data(i)=mixGaussTrue.cov(h)*randn()+mixGaussTrue.mean(h)
于 2013-11-11T01:51:00.150 回答