mk_hmm_obslik_vec.m
来自「Bayes网络工具箱」· M 代码 · 共 33 行
M
33 行
function obslik = mk_obs_lik(engine, evidence, t)% MK_OBS_LIK Make the observation likelihood vector for one slice (hmm)% obslik = mk_obs_lik(engine, evidence, t)%% If t=1, evidence{i} contains the evidence on node i in slice 1% Otherwise, evidence{i,1} contains the evidence on node i in slice t-1% evidence{i,2} contains the evidence on node i in slice tbnet = bnet_from_engine(engine);ns = engine.node_sizes;ss = length(ns);Q = prod(ns(engine.hnodes));obslik = zeros(1,Q);if t==1 dom = (1:ss);else dom = (1:ss)+ss;endbigpot = dpot(dom, ns(dom));for i=engine.onodes(:)' if t==1 e = bnet.equiv_class(i,1); fam = family(bnet.dag, i); else e = bnet.equiv_class(i,2); fam = family(bnet.dag, i, 2); end pot = CPD_to_dpot(bnet.CPD{e}, fam, ns, bnet.cnodes, evidence); bigpot = multiply_by_pot(bigpot, pot);endm = pot_to_marginal(bigpot);obslik = m.T(:);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?