将gmdistribution.fit与数据一起绘制

时间:2012-11-09 09:05:24

标签: matlab curve-fitting gaussian

我有一个数据直方图(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

非常感谢任何明确的帮助!

1 个答案:

答案 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做同样的事。

enter image description here

enter image description here