Eva*_*van 9 matlab normal-distribution gaussian contour
我有一个双变量高斯我定义如下:
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.
Run Code Online (Sandbox Code Playgroud)
现在我想绘制上述矩阵的pdf轮廓.我做了什么:
Z = mvnpdf(beta,mu,sigma); %100x1 pdf matrix
Run Code Online (Sandbox Code Playgroud)
现在我想绘制双变量高斯beta的轮廓.我知道我应该使用命令轮廓,但这个要求Z是一个方阵.我该如何解决这个问题?我很困惑,不知道如何绘制双变量高斯的轮廓!! 任何帮助是极大的赞赏..
谢谢
Lui*_*ndo 17
您需要定义x,y轴和使用meshgrid(或ndgrid)产生的X,Y值的所有组合,在两个矩阵的形式X和Y.然后,计算出Z这些值(你高斯PDF)X和Y,并绘制Z成函数X,Y使用contour(等高线图),或者surf(3D绘图).
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
Run Code Online (Sandbox Code Playgroud)
