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