?? mk_hmm_obs_lik_vec.m
字號:
function obslik = mk_hmm_obs_lik_vec(engine, evidence)Q = length(engine.startprob);obslik = ones(Q, 1);% P(o1,o2| Q1,Q2) = P(o1|Q1,Q2) * P(o2|Q1,Q2)bnet = bnet_from_engine(engine);onodes = bnet.observed;for i=1:length(onodes) data = cell2num(evidence(onodes(i),1)); if myismember(onodes(i), bnet.dnodes) obslik_i = mk_dhmm_obs_lik(data, engine.obsprob{i}); else % calling mk_ghmm_obs_lik, which calls gaussian_prob, is slow, so we inline it % and use the pre-computed inverse matrix %obslik_i = mk_ghmm_obs_lik(data, engine.obsprob{i}.mu, engine.obsprob{i}.Sigma); x = data(:); m = engine.obsprob{i}.mu(:); invC = engine.obsprob{i}.inv_Sigma; denom = engine.obsprob{i}.denom; numer = exp(-0.5 * (x-m)' * invC * (x-m)); obslik_i = numer / denom; end obslik = obslik .* obslik_i;end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -