多维高斯分布图很多人比较陌生,笔者也是最近用到的时候才学会的。这里推荐;两种做法:
1、meshgrid+mvnpdf+surf
meshgrid为三维曲面分割线坐标函数,调用格式如[x,y]=meshgrid([-4:0.1:4]);
返回的想x和y是在[-4:0.1:4]范围的81*81个二维平面坐标。
mvnpdf为高斯概率分布函数,计算指定参数下给坐标点的概率密度,使用如下:
mu=[0 0];%期望
sigma=[1 0;0 1];%协方差
p=mvnpdf([x(:),y(:)],mu,sigma);%概率
surf为三维曲面作图函数,调用格式为:surf(x,y,reshape(p,size(x,1),[])).
举个简单的例子,二维高斯分布:
[x,y]=meshgrid(linspace(-8,8,50));
mu=[0 0];%期望
sigma=[1 0;0 1];%协方差
p=mvnpdf([x(:),y(:)],mu,sigma);%概率
surf(x,y,reshape(p,size(x,1),[]))
效果如下图所示:
2、ezsurf这个函数用的不是很多,专门用于matlab绘制三维图形,具体参见matlab的解释。举个例子:
ezsurf(inline('mvnpdf([x,y],[0 0],[1 0;0 1])'),[-8 8])