matlab高斯烟团 浓度范围分布图问题

MATLAB 和 Simulink 基础入门教程、免费正版软件申请还有更多实用在线技术资源 >>

}

最近在看混合高斯模型中分量个數如何确定的文章其中有一副图展示了算法迭代初期和结束时的效果图(见附件)。现有两个问题想和大家交流讨论:    1.图中的数据(黑點)均来自于不同参数下的二元高斯分布可是不清楚这些椭圆是怎么画的?我觉得一个椭圆对应的应该是二元高斯函数在xy平面上的某一條等高线(能包含绝大多数的数据点)但是文中也没说对应的是哪一函数值的等高线,已经尝试用contour(x,y,z,1)命令作图但得到的椭圆太小(没包含绝大多数的数据点);    如何选取各初始高斯分布的均值和协方差矩阵才能使刚开始的投影椭圆具有下图所示的对称效果?    欢迎大家积极囷我讨论3Q!

}

首先把二维正态分布密度函数嘚公式贴这里

但是上面的那个是多维正态分布的密度函数的通式,那个n阶是对称正定方阵叫做协方差矩阵其中的x,pi,u都是向量形式。虽然这個式子很酷但是用在matlab里画图不太方面,下面换一个

这个公式与上面的等价只不过把向量和矩阵展开,计算出来我们可以用这个式子畫图。

因为二维函数的形式是:z=f(x,y)

所以必须先选择一些点然后计算出f(x,y)。这些点分布在一个平面上而z则在三维空间。

如何选择平面上的点阵

meshgrid就是这样一个生成点阵的函数,这个meshgrid理解起来有点绕不过举个例子就马上能力明白了。下面是matlab里面的一段截图:

我们可以看到meshgrid生成了兩个同样大小的矩阵第一个矩阵是通过把第一个参数[1:3]顺着行的方向复制了4次,4是第二个参数的长度同样第二个矩阵是第二个参数顺着列的方向复制了三次,3是第一个参数向量的长度而这个点阵就是:

看出什么意思了吧?就这个意思

至于这两个参数到底怎么选,这样根据你的正态分布的均值尽量使点阵的中心与分布的均值靠近。

好了有了平面上的点,就来算这些点对应的函数值往函数里套就行,下面是代码:

  最后一句mesh(x,y,Z) 是画图函数画出的图行大概是下面这个样子:

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信