wolffd@0: function m = pot_to_marginal(pot) wolffd@0: % POT_TO_MARGINAL Convert a scgpot to a marginal structure. wolffd@0: % m = pot_to_marginal(pot) wolffd@0: wolffd@0: assert(isempty(pot.ctaildom)) wolffd@0: m.domain = pot.domain; wolffd@0: n = pot.cheadsize; wolffd@0: d = pot.dsize; wolffd@0: wolffd@0: if n==0 wolffd@0: m.mu = []; wolffd@0: m.Sigma = []; wolffd@0: else wolffd@0: m.mu = zeros(n, d); wolffd@0: m.Sigma = zeros(n, n, d); wolffd@0: end wolffd@0: %m.T = 0*myones(pot.dsizes); wolffd@0: m.T = 0*myones(pot.dsize); wolffd@0: for i=1:pot.dsize wolffd@0: potc = struct(pot.scgpotc{i}); % violate privacy of object wolffd@0: if n > 0 wolffd@0: m.mu(:,i) = potc.A; wolffd@0: m.Sigma(:,:,i) = potc.C; wolffd@0: end wolffd@0: m.T(i) = potc.p; wolffd@0: end wolffd@0: if isvectorBNT(m.T) wolffd@0: m.T = m.T(:)'; wolffd@0: end