mc_sample_endstate.m

来自「详细介绍了隐马尔科夫链的原理和matlab代码实现」· M 代码 · 共 28 行

M
28
字号
function S = sample_mc_endstate(startprob, trans, endprob)% SAMPLE_MC_ENDSTATE Generate a random sequence from a Markov chain until enter the endstate.% seq = sample_mc(startprob, trans, endprob)% add an end stateQ = size(trans,1);transprob = zeros(Q,Q+1);end_state = Q+1;for i=1:Q  for j=1:Q    transprob(i,j) = (1-endprob(i)) * trans(i,j);  end  transprob(i,end_state) = endprob(i);  %assert(approxeq(sum(transprob(i,:)), 1))end                  S = [];S(1) = sample_discrete(startprob);t = 1;p = endprob(S(t));stop = (S(1) == end_state);while ~stop  S(t+1) = sample_discrete(transprob(S(t),:));  stop = (S(t+1) == end_state);  t = t + 1;endS = S(1:end-1); % don't include end state

⌨️ 快捷键说明

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