我有一个数据直方图(x,y),它是两个高斯的混合(简单情况,即一维)。为了适应它,我使用
obj = gmdistribution.fit(data,2)
给了我
obj =
高斯混合分布,1维中包含2个分量 第1部分: 混合比例:0.499387 平均值:-0.4789
组件2: 混合比例:0.500613 平均值:-0.4786
现在,我如何将其与原始直方图一起绘制?我知道这两个链接,但他们不太帮助我:
http://www.mathworks.com/matlabcentral/newsreader/view_thread/317868
http://www.mathworks.de/de/help/stats/gmdistribution.fit.html
非常感谢任何明确的帮助!
答案 0 :(得分:1)
我想这可能有点晚了,但已经在matlabs site上更新了。以防万一
MU1 = [1 2];
SIGMA1 = [2 0; 0 .5];
MU2 = [-3 -5];
SIGMA2 = [1 0; 0 1];
X = [mvnrnd(MU1,SIGMA1,1000);mvnrnd(MU2,SIGMA2,1000)];
scatter(X(:,1),X(:,2),10,'.')
hold on
options = statset('Display','final');
obj = gmdistribution.fit(X,2,'Options',options);
10 iterations, log-likelihood = -7046.78
h = ezcontour(@(x,y)pdf(obj,[x y]),[-8 6],[-8 6]);
你可以使用scatter3为3d做同样的事。