G Contour Matlab - PullRequest
       1

G Contour Matlab

0 голосов
/ 03 марта 2011

Как использовать mesh() для рисования гауссианов в 2d, внутри этой функции Matlab ...

function  G(Mean,Cov,c)

icov = inv(Cov);
det_cov = det(Cov);
const = 1/(2*pi*sqrt(det_cov));

xx = linspace(Mean(1)-3*sqrt(Cov(1,1)),Mean(1)+3*sqrt(Cov(1,1)));
yy = linspace(Mean(2)-3*sqrt(Cov(2,2)),Mean(2)+3*sqrt(Cov(2,2)));

[x y] = meshgrid(xx,yy);
mx=x-Mean(1);
my = y-Mean(2);

z=const*exp(-0.5*(icov(1,1)*mx.^2+icov(2,1)*mx.*my +icov(2,1)*my.*mx+icov(2,2)*my.^2));
contour(x,y,z,c);

1 Ответ

3 голосов
/ 03 марта 2011

Просто замените contour на mesh.

Также старайтесь не использовать Mean и Cov в качестве имен переменных.mean и cov являются функциями Matlab, и хотя написание немного отличается, вы все равно настраиваете себя на некоторые трудно обнаруживаемые ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...