我正在尝试创建一个简单的随机游走。这是我写的代码。
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
,我会得到全零。为什么会这样?
我得到了一个类似的情节
这看起来不像是随机游走。有人可以告诉我我做错了吗
1 个答案:
答案 0 :(得分:1)
关于Noel的评论,确实length(n)
应该被n
替换,而绘图函数应该是plot(1:(n+1),X,'.-')
,而不是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,'.-')
情节看起来更像是随机游走: