为什么二维随机游走的一维变体不起作用?

阿汉·伦塔(Ahaan S.Rungta)

这里可以找到一个二维的随机游走,它在Octave中可以很好地工作但是,当我尝试编写一维随机游走程序时,出现了一个错误。这是程序:

t=[];
x=[];
for i=1:100000
    J=rand;
    if J<0.5
        x(i+1)=x(i)+1;
        t(i+1)=t(i)+1;
    else
        x(i+1)=x(i)-1;
        t(i+1)=t(i)+1;
    end
end

plot(t,x)

这是错误:

错误:A(I):索引超出范围;值1超出范围0

谢谢你。

路易斯·门多

无需循环:

N = 100000;
t = 1:N;
x = cumsum(2*(rand(1,N)<.5)-1);
plot(t,x)

在此处输入图片说明

对于2D情况,您可以使用相同的方法:

N = 100000;
%// t = 1:N; it won't be used in the plot, so not needed
x = cumsum(2*(rand(1,N)<.5)-1);
y = cumsum(2*(rand(1,N)<.5)-1);
plot(x,y)
axis square

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章