enter_evidence.m

来自「Bayes网络工具箱」· M 代码 · 共 32 行

M
32
字号
function [engine, loglik] = enter_evidence(engine, evidence)% ENTER_EVIDENCE Add the specified evidence to the network (fast_jtree_onepass)% [engine, loglik] = enter_evidence(engine, evidence)% evidence{i} = [] if if X(i) is hidden, and otherwise contains its observed value (scalar or column vector)bnet = bnet_from_engine(engine);ns = bnet.node_sizes(:);onodes = find(~isemptycell(evidence));assert(isequal(onodes, engine.onodes));pot_type = determine_pot_type(onodes, bnet.cnodes, bnet.dag);assert(pot_type == 'd');% Evaluate CPDs with evidence, and convert to potentialsN = length(bnet.dag);CPDpot = cell(1,N);for n=1:N  fam = family(bnet.dag, n);  e = bnet.equiv_class(n);  CPDpot{n} = CPD_to_table(bnet.CPD{e}, fam, ns, bnet.cnodes, evidence);endj1engine = struct(engine.jtree_onepass_inf_engine);  % violate object privacyjengine = struct(j1engine.jtree_inf_engine); % violate object privacy [marginal, loglik] = enter_soft_evidence(engine, jengine.clq_ass_to_node, CPDpot, engine.CPD_ndx);ns(onodes) = 1;marginal2 = dpot(j1engine.query, ns(j1engine.query), marginal);marginal3 = pot_to_marginal(marginal2);engine.jtree_onepass_inf_engine = set_marginal(engine.jtree_onepass_inf_engine, marginal3);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?