Multivariate Guassian Distribution

Technical Source
2 min readApr 14, 2022

--

I want to learn Multivariate Gussian distribution so I written the following code.*I am implementing following formula

Iam expecting this type of plot

Where I am doing mistake?

clear all
clc
% Taking two guassian random variables
x=randn(1000,1);
y=randn(1000,1);
X=[x y];
X=X';
d=size(X,1);
% find means of x,y
mx=mean(x);
my=mean(y);
mumat=[mx my]';
mumat=repmat(mumat,1,size(X,2));
Dif_mat=X-mumat;
% The above step (Dif_mat) is (X-mu) in the formula
cov_mat=cov(X'); % covariance matrix
det_cv=det(cov_mat); % det of cov matrix
inv_cov=inv(cov_mat); % inverse of cov matrix
% scale term before exp in forumala
scale=((2*pi)^(d/2))*sqrt((abs(det_cv)));
scale=inv(scale);
% Mahabolis distance in formula
MB=Dif_mat'*cov_mat*Dif_mat;
% find the final probability
p=scale*exp((-1/2)*MB);
surf(x,y,p)

NOTE:-

Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

You’re really trying to do two things here. The first is, you have some random data and you want to fit it to a multivariate normal distribution. Your approach to this part works, although it can be streamlined:

n = 1000; d=2;
X = randn(n,2);

Get mean and covariance:

mumat=mean(X);
cov_mat=cov(X);

The second part is plotting the resulting distribution. Here you need a regular grid for your variables, not the random values you generated above:

x = -3:.2:3; y = -3:.2:3;
[X,Y] = meshgrid(x,y);
X = X-mumat(1); Y = Y-mumat(2);

Combine X and Y in a way that each row represents one 2D variable.

Z = [X(:) Y(:)];

Now calculate the probabilities.

SEE COMPLETE ANSWER CLICK THE LINK

--

--

Technical Source
Technical Source

Written by Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

No responses yet