matlab怎么画高斯分布,多值高斯分布matlab绘制

问题

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

48787874_1.png

48787874_2.png

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值