0

我有一个数据(x,y)的直方图,它是两个高斯的混合(简单的情况,即一维)。为了适应它,我使用

obj = gmdistribution.fit(数据,2)

这给了我

对象 =

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

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

4

1 回答 1

1

我想这可能有点晚了,但它已在 matlabs网站上更新。以防万一

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 执行相同的操作。

在此处输入图像描述

在此处输入图像描述

于 2013-11-04T14:11:01.217 回答