2017-03-16 345 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