⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample_markov_chain.m

📁 隐马尔科夫模型对文本信息进行抽取利用MATLAB实现
💻 M
字号:
function state = sample_markov_chain(initial_prob, trans, len, numex)%% Generate random sequences from a Markov chain.% state = sample_markov_chain(initial_prob, trans, len, numex)%% Each row of state is a sequence of length len.% The number of rows, numex, is 1 if omitted.if nargin==3  numex = 1;endstate = zeros(numex,len);S = length(initial_prob); % num statesR = rand(len*numex,1);rcount = 1;% Compute all the cdf's ahead of timeinit_cumprob = zeros(1,S+1);init_cumprob(1) = 0;for j=1:S  init_cumprob(j+1) = init_cumprob(j) + initial_prob(j);endcumprob = zeros(S, S+1);for i=1:S  cumprob(i,:) = [0 cumsum(trans(i,:))];endfor ex=1:numex  t = 1;    % j = sample(init_cumprob, R, rcount);  r = R(rcount);  rcount = rcount + 1;  for j=1:S    if (r >= init_cumprob(j)) & (r < init_cumprob(j+1))      break;    end  end    state(ex,t) = j;end  for ex=1:numex  for t=2:len    i = state(ex,t-1);    % j = sample(cumprob(i,:), R, rcount);    r = R(rcount);    rcount = rcount + 1;    for j=1:S      if (r >= cumprob(i,j)) & (r < cumprob(i,j+1))	break;      end    end        state(ex,t) = j;  endend

⌨️ 快捷键说明

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