wolffd@0: function [marginal, pot] = marginal_nodes(engine, query) wolffd@0: % MARGINAL_NODES Compute the marginal on the specified query nodes (belprop) wolffd@0: % [marginal, pot] = marginal_nodes(engine, query) wolffd@0: % wolffd@0: % query must be a subset of a family wolffd@0: wolffd@0: if isempty(query) wolffd@0: big_pot = engine.marginal_domains{1}; % pick an arbitrary domain wolffd@0: else wolffd@0: big_pot = engine.marginal_domains{query(end)}; wolffd@0: end wolffd@0: pot = marginalize_pot(big_pot, query); wolffd@0: marginal = pot_to_marginal(pot); wolffd@0: