如何从原点到达用户指定的边界点,随机行走模拟



我正试图在MATLAB中创建一个函数:

它模拟了一次随机行走,我想计算从原点到达用户指定的边界点所需的步数(0,0)它们将指定:(b,z)b: 是它与一起到达的边界上的x点z: 作为边界上的y点。

目前,它在达到b或z值后停止,但我希望两者都达到。例如:我希望它达到(3,3),但在达到(3,1)后它将停止运行,因此只满足我的一个约束。

任何帮助都将不胜感激!

这是我的代码:

function s= rw_selectpoint(b,z)
%%exit time for square
%%set up square 2bx2z
%%center of square =(0,0)
x=0;
y=0;
walk_num=0;
%%set up probabilities and loop 
while (abs(x)< b && abs(y)<z)
r= rand();
if (r<=.25)
walk_num=walk_num+1;
x=x+1
elseif ((.25<r) && (r<=.5))
walk_num=walk_num+1;
x=x-1
elseif ((.5<r) && (r<=.75))
walk_num=walk_num+1;
y=y+1
else %(.75<r)    
walk_num=walk_num+1;
y=y-1
end
end
s=walk_num;
display (x)
display (y)
%display (s)
end

while循环的条件是两个语句的结合。

while (abs(x)< b && abs(y)<z)

因此,如果其中一个为false,则条件不满足,循环终止。

&&更改为||,您的代码应该可以正常工作。

最新更新