enter_evidence.m

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

M
30
字号
function [engine, loglik] = enter_evidence(engine, evidence)% ENTER_EVIDENCE Add the specified evidence to the network (fast_jtree)% [engine, loglik] = enter_evidence(engine, evidence)% % evidence{i} = [] if if X(i) is hidden, and otherwise contains its observed value (scalar or column vector)% All and only the nodes that were declared observed when the engine was created must contain evidence.% All the hidden nodes must be discrete.bnet = bnet_from_engine(engine);onodes = find(~isemptycell(evidence));assert(isequal(onodes, engine.onodes));cnodes = bnet.cnodes;pot_type = determine_pot_type(onodes, cnodes, bnet.dag);assert(pot_type == 'd');ns = bnet.node_sizes;% 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, cnodes, evidence);endjengine = struct(engine.jtree_inf_engine); % violate object privacy[clpot, loglik] = enter_soft_evidence(engine, jengine.clq_ass_to_node, CPDpot, engine.CPD_ndx);engine.cltables = clpot;

⌨️ 快捷键说明

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