2017-03-16 348 views
0

我想創建一個簡單的隨機遊走。這是我寫的代碼。在Matlab中隨機遊走

n=50; 
p=0.5; 

Y=zeros(n,1); 
X=zeros(n,1); 
X(1)=0; 

for i=1:length(n) 
    Y(i,1)=(rand(1)<=p); 
end 

for i=1:length(n) 
    X(i+1)=X(i)+(2*Y(i)-1); 
end 
plot(1:n,X,'.-') 

然而,在此,如果我檢查Y,存儲隨機變量伯努利,我得到的所有零。爲什麼會發生?

我得到一個情節,如this
這看起來不像隨機遊走。有人可以告訴我什麼,我做錯了

+3

'長度(N)'爲1,因爲它是一個數字。你想要'for i = 1:n' –

+0

@NelelSeguraMeraz謝謝。 –

回答

0

關於諾埃爾的評論,確實是length(n)應由n替代和繪圖功能應該是plot(1:(n+1),X,'.-'),而不是因爲有在十n+1元素您有以下結束:

n=50; 
p=0.5; 

Y=zeros(n,1); 
X=zeros(n,1); 
X(1)=0; 

for i=1:n 
    Y(i,1)=(rand(1)<=p); 
end 

for i=1:n 
    X(i+1)=X(i)+(2*Y(i)-1); 
end 
plot(1:(n+1),X,'.-') 

情節看起來更像是一個隨機遊走:

enter image description here