gusucode.com > 用粒子滤波算法进行跟踪的matlab代码 > gmm_utilities/kernel_distance_bayes.m
function D = kernel_distance_bayes(g1, g2) % % Evidence of hypothesis, or Bayes normaliser, or probability of observation p(z|Z) dim = size(g1.x, 1); S = g1.P + g2.P; Sc = chol(S)'; denom = (2*pi)^(dim/2) * prod(diag(Sc)); D = 0; for i=1:size(g1.x,2) for j=1:size(g2.x,2) wij = evaluate_likelihood(g1.x(:,i)-g2.x(:,j), Sc, denom); D = D + g1.w(i) * g2.w(j) * wij; end end % % function w = evaluate_likelihood(v, Sc, denom) % vc = Sc\v; numer = -0.5 * sum(vc.*vc, 1); w = exp(numer) / denom;