enter_evidence.m

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

M
31
字号
function [engine, loglik] = enter_evidence(engine, evidence, filter)% ENTER_EVIDENCE Add the specified evidence to the network (frontier)% [engine, loglik] = enter_evidence(engine, evidence, filter)%% evidence{i,t} = [] if if X(i,t) is hidden, and otherwise contains its observed value (scalar or column vector)% If filter = 1, we do filtering, otherwise smoothing (default).if nargin < 3, filter = 0; end[ss T] = size(evidence);bnet = bnet_from_engine(engine);onodes = find(~isemptycell(evidence));cnodes = unroll_set(bnet.cnodes(:), ss, T);big_dag = unroll_dbn_topology(bnet.intra1, bnet.intra, bnet.inter, T);pot_type = determine_pot_type(onodes, cnodes, big_dag);eclass = [bnet.equiv_class(:,1) repmat(bnet.equiv_class(:,2), 1, T-1)];   ns = repmat(bnet.node_sizes_slice(:), 1, T);          % Convert evidence-specific CPDs to potentialsCPD = cell(ss,T);for t=1:T  for i=1:ss    fam = family(bnet.dag, i, t);    CPD{i,t} = CPD_to_pot(pot_type, bnet.CPD{eclass(i,t)}, fam, ns, cnodes, evidence);     endend[engine.fwdback, loglik, engine.fwd_frontier, engine.back_frontier] = enter_soft_evidence(engine, CPD, onodes, pot_type, filter);

⌨️ 快捷键说明

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