Daniel@0: function p = eval_pdf_clg(X,Y,mu,Sigma,W) Daniel@0: % function p = eval_pdf_clg(X,Y,mu,Sigma,W) Daniel@0: % Daniel@0: % p(c,t) = N(Y(:,t); mu(:,c) + W(:,:,c)*X(:,t), Sigma(:,:,c)) Daniel@0: Daniel@0: [d T] = size(Y); Daniel@0: [d nc] = size(mu); Daniel@0: p = zeros(nc,T); Daniel@0: for c=1:nc Daniel@0: denom = (2*pi)^(d/2)*sqrt(abs(det(Sigma(:,:,c)))); Daniel@0: M = repmat(mu(:,c), 1, T) + W(:,:,c)*X; Daniel@0: mahal = sum(((Y-M)'*inv(Sigma(:,:,c))).*(Y-M)',2); Daniel@0: p(c,:) = (exp(-0.5*mahal) / denom)'; Daniel@0: end