function P = hmmfillprob(A0,B0,C0,n0) global A B C n mhid mobs A=A0; B=B0; C=C0; n=n0; [mobs,mhid] = size(B); dimX = repmat([mobs],[1 n]); dimS = repmat([mhid],[1 n]); P = zeros(mobs^n,1); for xind = 1:mobs^(n) x = ind2coord(xind,dimX); for sind = 1:mhid^n s = ind2coord(sind,dimS); P(xind) = P(xind) + Pjoinsx(s,x); end end return function p = Pcondxs(x,s) % p = P(x|s) global A B C n mhid mobs p = 1; for i=1:length(x) p = p * B(x(i),s(i)); end return function p = Pjoinsx(s,x) % p = P(s,x) global A B C n mhid mobs p = C(s(1)); for i=2:length(s) p = p * A(s(i),s(i-1)); end p = p * Pcondxs(x,s); return