Multivariate Gaussian user defined function

2 ビュー (過去 30 日間)
BBB
BBB 2019 年 11 月 8 日
コメント済み: BBB 2019 年 11 月 8 日
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 件のコメント
the cyclist
the cyclist 2019 年 11 月 8 日
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.

サインインしてコメントする。

採用された回答

the cyclist
the cyclist 2019 年 11 月 8 日
編集済み: the cyclist 2019 年 11 月 8 日
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 件のコメント
the cyclist
the cyclist 2019 年 11 月 8 日
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 2019 年 11 月 8 日
Hi
Thank you so much! It works well :)
Really appreciate it!

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by