2011-11-17 68 views
1

我想在matlab中爲隨機遊走移動模型建模我正面臨着從轉換矩陣中找到下一個狀態的問題。我已經創建了狀態轉換矩陣,但是我不知道如何找到下一個狀態?從轉換矩陣中找到下一個狀態?隨機遊走Matlab仿真

我知道我有來自trasition矩陣的每個狀態的所有概率,但我需要實際上根據這些概率選擇下一個狀態是什麼。 有人可以幫助我嗎?

回答

1

如果A是行的總和爲1的轉換矩陣,那麼你可以模擬馬爾可夫鏈是這樣的:

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

非常感謝,我真的appricated你的幫助,它的工作! – user550751

+0

@ user550751然後請爲答案投票(點擊左邊的灰色向上箭頭),如果完全滿意,也接受它(點擊複選標記輪廓)。 –

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