mk_hmm_obs_lik_vec.m

来自「麻省理工学院的人工智能工具箱,很珍贵,希望对大家有用!」· M 代码 · 共 25 行

M
25
字号
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 + =
减小字号Ctrl + -
显示快捷键?