14 lines
416 B
Matlab
Executable File
14 lines
416 B
Matlab
Executable File
function y = logVmf(X, mu, kappa)
|
|
% Compute log pdf of a von Mises-Fisher distribution.
|
|
% Input:
|
|
% X: d x n data matrix
|
|
% mu: d x k mean
|
|
% kappa: 1 x k variance
|
|
% Output:
|
|
% y: k x n probability density in logrithm scale y=log p(x)
|
|
% Written by Mo Chen (sth4nth@gmail.com).
|
|
d = size(X,1);
|
|
c = (d/2-1)*log(kappa)-(d/2)*log(2*pi)-logbesseli(d/2-1,kappa);
|
|
q = bsxfun(@times,mu,kappa)'*X;
|
|
y = bsxfun(@plus,q,c');
|