我是新手,请耐心等待。我正在尝试使用以下参数从高斯混合模型生成数据点:
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))) ) ;
非常感谢!
答案 0 :(得分:1)
看起来你的两个高斯是一维的。
无论如何,您可以使用生成随机高斯变量的randn()
:
data(i)=mixGaussTrue.cov(h)*randn()+mixGaussTrue.mean(h)