## Copyright (C) 2017 Jens Ahrensfeld ## ## This program is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 3 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program. If not, see . ## -*- texinfo -*- ## @deftypefn {Function File} {@var{retval} =} hmm_eval (@var{input1}, @var{input2}) ## ## @seealso{} ## @end deftypefn ## Author: Jens Ahrensfeld ## Created: 2017-06-14 function sv = hmm_eval (A, numIter) numStates = length(A) C = zeros(1,numStates); #A = rand(numStates, numStates) for s=1:numStates, A(s,:) = A(s,:) ./ sum(A(s,:)); [AS(s,:), Ai(s,:)] = sort(A(s,:)); AC(s,:) = cumsum(AS(s,:)); end A AC s=1; for n=1:numIter, sv(n) = s; stateProbs = AC(s,:); z = rand(); c = find (z <= stateProbs); s = Ai(s, c(1)); C(s) = C(s) + 1; end plot(1:numIter, sv, 'ro-'); grid; C=C/numIter endfunction