www.pudn.com > gmm_utilities.zip > kernel_multiply.m


function gr = kernel_multiply(g1,g2) 
 
D = size(g1.x, 1); 
M = size(g1.x, 2); 
N = size(g2.x, 2); 
R = M*N; 
 
gr.x = zeros(D,R); 
gr.w = zeros(1,R); 
 
k=1; 
for i=1:M 
    xi = repcol(g1.x(:,i), N); 
    wi = repcol(g1.w(i), N); 
     
    [x, gr.P, w] = gauss_multiply(xi, g1.P, g2.x, g2.P); 
     
    ii = k:(k+N-1); 
    gr.x(:,ii) = x; 
    gr.w(ii) = w*wi*g2.w; 
     
    k = ii(end) + 1; 
end