Daniel@0: function S = mc_sample(prior, trans, len, numex) Daniel@0: % SAMPLE_MC Generate random sequences from a Markov chain. Daniel@0: % STATE = SAMPLE_MC(PRIOR, TRANS, LEN) generates a sequence of length LEN. Daniel@0: % Daniel@0: % STATE = SAMPLE_MC(PRIOR, TRANS, LEN, N) generates N rows each of length LEN. Daniel@0: Daniel@0: if nargin==3 Daniel@0: numex = 1; Daniel@0: end Daniel@0: Daniel@0: S = zeros(numex,len); Daniel@0: for i=1:numex Daniel@0: S(i, 1) = sample_discrete(prior); Daniel@0: for t=2:len Daniel@0: S(i, t) = sample_discrete(trans(S(i,t-1),:)); Daniel@0: end Daniel@0: end