从转移矩阵中寻找下一个状态?随机漫步Matlab仿真

时间:2011-11-17 03:59:16

标签: matlab random matrix simulation markov-chains

我正在尝试在matlab中建模随机游走移动模型我面临着从转移矩阵中找到下一个状态的问题。我已经创建了我的状态转换矩阵,但我不知道如何找到下一个状态?

我知道我从trasition矩阵中获得了每个状态的所有概率,但我需要实际根据这些概率选择下一个状态。 有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

如果A是您的转换矩阵,行总和为1,那么您可以像这样模拟马尔可夫链:

cdf = cumsum(A,2);
for t =1:numSteps
   stateIndex = min(find(rand < cdf(stateIndex,:)));
   % ....
end

答案 1 :(得分:0)

或者如果您想使用内置工具箱功能:

n=100; %number of moves
emis=ones(1,length(A))  % it's not a Hidden Markov Model so this can be just ones. ignore.
[~,moves] = hmmgenerate(n, A, emis); % starts at state 1 don't forget