gusucode.com > 用粒子滤波算法进行跟踪的matlab代码 > gmm_utilities/kernel_to_gaussian.m
function [x,P,wn] = kernel_to_gaussian(g) % Convert kernels to a single Gaussian (ie, compute first two moments). [g, wn] = kernel_normalise(g); % must be normalised for weighted sums to be meaningful [D,N] = size(g.x); w = reprow(g.w, D); x = sum(w.*g.x, 2); xerr = g.x - repcol(x, N); P = g.P + w.*xerr*xerr'; % Note: above is order-dependent. Must do (w.*xerr)*xerr', not w.*(xerr*xerr')