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