0

我正在尝试创建一个简单的随机游走。这是我写的代码。

 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存储随机伯努利变量的 ,我得到全零。为什么会这样?

我得到一个情节,如这个.
这看起来不像是随机游走。有人可以告诉我我做错了什么吗

4

1 回答 1

1

关于 Noel 的评论,确实length(n)应该替换为n并且 plot 函数应该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,'.-')

情节看起来更像是随机游走:

在此处输入图像描述

于 2017-03-16T10:20:17.327 回答