Daniel@0: function marginal = marginal_nodes(engine, query) Daniel@0: % MARGINAL_NODES Compute the marginal on the specified query nodes (gaussian) Daniel@0: % marginal = marginal_nodes(engine, query) Daniel@0: Daniel@0: % Compute sum_{Hsum} Pr(Hkeep, Hsum | o) Daniel@0: H = engine.hnodes; Daniel@0: bnet = bnet_from_engine(engine); Daniel@0: ns = bnet.node_sizes; Daniel@0: Hkeep = myintersect(H, query); Daniel@0: Hsum = mysetdiff(H, Hkeep); Daniel@0: Daniel@0: [marginal.mu, marginal.Sigma] = marginalize_gaussian(engine.Hmu, engine.HSigma, Hkeep, Hsum, ns); Daniel@0: marginal.domain = query; Daniel@0: marginal.T = 1; Daniel@0: