Plot a contour of multivariate normal PDF of a given MVN in MATLAB?

末鹿安然 提交于 2019-12-05 03:41:58

You need to define your x, y axes and use meshgrid (or ndgrid) to generate all combinations of x, y values, in the form of two matrices X and Y. You then compute the Z values (your Gaussian pdf) for those X and Y, and plot Z as a function of X , Y using contour (contour plot), or perhaps surf (3D plot).

mu = [0,0]; %// data
sigma = [.5 0; 0 .5]; %// data
x = -5:.1:5; %// x axis
y = -4:.1:4; %// y axis

[X Y] = meshgrid(x,y); %// all combinations of x, y
Z = mvnpdf([X(:) Y(:)],mu,sigma); %// compute Gaussian pdf
Z = reshape(Z,size(X)); %// put into same size as X, Y
%// contour(X,Y,Z), axis equal  %// contour plot; set same scale for x and y...
surf(X,Y,Z) %// ... or 3D plot

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!