Multivariate Gaussian user defined function

1 vue (au cours des 30 derniers jours)
BBB
BBB le 8 Nov 2019
Commenté : BBB le 8 Nov 2019
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 commentaire
the cyclist
the cyclist le 8 Nov 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.

Connectez-vous pour commenter.

Réponse acceptée

the cyclist
the cyclist le 8 Nov 2019
Modifié(e) : the cyclist le 8 Nov 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 commentaires
the cyclist
the cyclist le 8 Nov 2019
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 le 8 Nov 2019
Hi
Thank you so much! It works well :)
Really appreciate it!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by