分享

多值高斯分布matlab绘制

 无名小卒917 2015-01-06

问题

I have a bivariate gaussian I defined as follow:

I=[1 0;0 1];
mu=[0,0];
sigma=0.5*I;
beta = mvnrnd(mu,sigma,100);  %100x2 matrix where each column vector is a variable.

now I want to plot a contour of the pdf of the above matrix. What I did:

Z = mvnpdf(beta,mu,sigma);  %100x1 pdf matrix

Now I want to plot a contour of the bivariate gaussian beta. I know I should use the command contour but this one require Z to be a square matrix. how do I solve this? I am very confused and not sure how to plot the contour of the bivariate gaussian!! ANY HELP IS GREATLY APPRECIATED..

Thank you

解答:

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
多值高斯分布matlab绘制 - 飞剑萧林 - 飞剑萧林 — 中国

  多值高斯分布matlab绘制 - 飞剑萧林 - 飞剑萧林 — 中国

转自:http:///questions/20170083/plot-a-contour-of-multivariate-normal-pdf-of-a-given-mvn-in-matlab

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多