我正在尝试在 matlab 中对随机游走移动模型进行建模,但我遇到了从转移矩阵中寻找下一个状态的问题。我已经创建了状态转换矩阵,但我不知道如何找到下一个状态?
我知道我从过渡矩阵中获得了每个状态的所有概率,但我需要根据这些概率实际选择下一个状态是什么。有人可以帮我吗?
我正在尝试在 matlab 中对随机游走移动模型进行建模,但我遇到了从转移矩阵中寻找下一个状态的问题。我已经创建了状态转换矩阵,但我不知道如何找到下一个状态?
我知道我从过渡矩阵中获得了每个状态的所有概率,但我需要根据这些概率实际选择下一个状态是什么。有人可以帮我吗?
如果A
您的转换矩阵的行总和为 1,那么您可以像这样模拟马尔可夫链:
cdf = cumsum(A,2);
for t =1:numSteps
stateIndex = min(find(rand < cdf(stateIndex,:)));
% ....
end
或者,如果您想使用内置工具箱功能:
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