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