Daniel@0: function y = sample_node(CPD, pvals) Daniel@0: % SAMPLE_NODE Draw a random sample from P(Xi | x(pi_i), theta_i) (discrete) Daniel@0: % y = sample_node(CPD, parent_evidence) Daniel@0: % Daniel@0: % parent_evidence{i} is the value of the i'th parent Daniel@0: Daniel@0: n = length(pvals)+1; Daniel@0: dom = 1:n; Daniel@0: %evidence = cell(1,n); Daniel@0: %evidence(1:n-1) = pvals(:)'; Daniel@0: evidence = pvals; Daniel@0: evidence{end+1} = []; Daniel@0: T = convert_to_table(CPD, dom, evidence); Daniel@0: y = sample_discrete(T);