gusucode.com > 用粒子滤波算法进行跟踪的matlab代码 > gmm_utilities/kernel_samples.m

    function s = kernel_samples(g,N)

[D,NX] = size(g.x);
s = zeros(D, N);
w = cumsum(g.w);
select = stratified_random(N) * w(end);

se=1;
for i=1:NX
    ss = se;
    while se<=N & select(se)<w(i)
        se = se+1;
    end
    if se > ss
        ii = ss:(se-1);
        s(:, ii) = gauss_samples(g.x(:,i), g.P, se-ss);
    end
end