]> AND Private Git Repository - these_gilles.git/blob - THESE/codes/graphe/Ncut_9/gaussian.m
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
07 sep
[these_gilles.git] / THESE / codes / graphe / Ncut_9 / gaussian.m
1 function p=gaussian(x,m,C);
2 % p=gaussian(x,m,C);
3 %
4 % Evaluate the multi-variate density with mean vector m and covariance
5 % matrix C for the input vector x.
6
7 % p=gaussian(X,m,C);
8
9 % Vectorized version: Here X is a matrix of column vectors, and p is 
10 % a vector of probabilities for each vector.
11 % Jianbo Shi, 1997
12 d=length(m);
13
14 if size(x,1)~=d
15    x=x';
16 end
17 N=size(x,2);
18
19 detC = det(C);
20 if rcond(C)<eps
21 %   fprintf(1,'Covariance matrix close to singular. (gaussian.m)\n');
22    p = zeros(N,1);
23 else
24    m=m(:);
25    M=m*ones(1,N);
26    denom=(2*pi)^(d/2)*sqrt(abs(detC));
27    mahal=sum(((x-M)'*inv(C)).*(x-M)',2);   % Chris Bregler's trick
28    numer=exp(-0.5*mahal);
29    p=numer/denom;
30 end
31