Daniel@0: function p = student_t_pdf(X, mu, lambda, alpha) Daniel@0: % STUDENT_T_PDF Evaluate the multivariate student-t distribution at a point Daniel@0: % p = student_t_pdf(X, mu, lambda, alpha) Daniel@0: % Daniel@0: % Each column of X is evaluated. Daniel@0: % See Bernardo and Smith p435. Daniel@0: Daniel@0: k = length(mu); Daniel@0: assert(size(X,1) == k); Daniel@0: [k N] = size(X); Daniel@0: numer = gamma(0.5*(alpha+k)); Daniel@0: denom = gamma(0.5*alpha) * (alpha*pi)^(k/2); Daniel@0: c = (numer/denom) * det(lambda)^(0.5); Daniel@0: p = c*(1 + (1/alpha)*(X-mu)'*lambda*(X-mu))^(-(alpha+k)/2); % scalar version Daniel@0: %m = repmat(mu(:), 1, N); Daniel@0: %exponent = sum((X-m)'*lambda*(X-m), 2); % column vector Daniel@0: %p = c*(1 + (1/alpha)*exponent).^(-(alpha+k)/2); Daniel@0: Daniel@0: keyboard