matlab构建高斯混合模型,使用matlab创建高斯混合模型及绘图

Matlab提供了根据几个独立的高斯模型创建Gaussian Mixture Model(GMM)的函数,即fitgmdist。关于该模型的具体使用方法以及绘制生成的GMM的图形的方法,如下代码所示:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% plot 3D Fitted Gaussian Mixture

close;

clear;

clc;

mu1 = [1 2];

Sigma1 = [2 0; 0 0.5];

mu2 = [-3 -5];

Sigma2 = [1 0;0 1];

rng(1); % For reproducibility

X = [mvnrnd(mu1,Sigma1,1000);mvnrnd(mu2,Sigma2,1000)]; % 2000 x 2

GMModel = fitgmdist(X,2); %fit GMM distribution

figure;

y = [zeros(1000,1);ones(1000,1)];

hold on;

ezsurf (@(x1,x2)pdf(GMModel,[x1 x2]),get(gca,{'XLim','YLim'}));

title('{\bf 3-D Fitted Gaussian Mixture}');

hold off;

figure;

y = [zeros(1000,1);ones(1000,1)];

h = gscatter(X(:,1),X(:,2),y);

hold on;

ezcontour (@(x1,x2)pdf(GMModel,[x1 x2]),get(gca,{'XLim','YLim'}));

title('{\bf Fitted Gaussian Mixture Contours}');

legend(h,'Model 0','Model1')

hold off;

生成的图形,如下图所示:

cc9a4bae67476e3d700ee81150a0ac1c.png

eac65ebb2a784800354d7df09271d0fa.png

需要注意的是,在生成3D图形时,默认显示为俯视图,需要旋转图形,方可看出3D效果。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值