Multivariate Gaussian user defined function

Hi
I want to create a hard coded multivariate gaussian function. I know there is an already existing matab function but I need to create another function for my project.
The Multivariate Gaussian Distribution equation given is as follows:
The function has to give a final plot of the gaussian bump using the imagesc in 2D.
%% Some code that I have already tried
function [z] = mygaussian2Dplot(X,mu,sigma)
e = 2.17;
L = X(1);
Y = X(2);
sigma_l = sigma(1).*L;
sigma_y = sigma(2).*Y;
z = 1/2.*sigma_l.*sigma_y.*pi*e.*(-L.^2/2.*sigma_l.^2 - Y.^2/2.*sigma_y.^2);
figure
imagesc(z)
title('Multivariate Gaussian Distribution')
xlabel('x')
ylabel('f(x)')
end

1 comentario

the cyclist
the cyclist el 8 de Nov. de 2019
Note that e is closer to 2.71, not 2.17.
You could also have used exp(1) there, for an even closer approximation.
Your code simply multiplied by e in your expression, rather than raising e to the desired power in the gaussian formula. That is another thing I fixed in my solution.

Iniciar sesión para comentar.

 Respuesta aceptada

the cyclist
the cyclist el 8 de Nov. de 2019
Editada: the cyclist el 8 de Nov. de 2019
I made a few changes:
  • Define L as the first column of X, not just first value
  • Ditto Y for second column
  • Changed a couple matrix operations to elementwise operations, in the definition of z
L = X(:,1);
Y = X(:,2);
sigma_l = sigma(1).*L;
sigma_y = sigma(2).*Y;
z = 1/2.*sigma_l.*sigma_y.*pi.*exp(-L.^2./2.*sigma_l.^2 - Y.^2./2.*sigma_y.^2);
figure
imagesc(z)
title('Multivariate Gaussian Distribution')
xlabel('x')
ylabel('f(x)')

3 comentarios

BBB
BBB el 8 de Nov. de 2019
Editada: BBB el 8 de Nov. de 2019
Thank you for your response. Somehow my code with the changes incorporated as suggested by you, is still not giving me the multivariate gaussian distribution.
But thank you very much for trying.
L = X(:,1);
Y = X(:,2);
sigma_l = sigma(1).*L;
sigma_y = sigma(2).*Y;
[LL,YY] = ndgrid(L,Y);
z = 1/2.*sigma_l.*sigma_y.*pi.*exp(-LL.^2./2.*sigma_l.^2 - YY.^2./2.*sigma_y.^2);
BBB
BBB el 8 de Nov. de 2019
Hi
Thank you so much! It works well :)
Really appreciate it!

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

BBB
el 8 de Nov. de 2019

Comentada:

BBB
el 8 de Nov. de 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by