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

Matlab 如何从原点到达用户指定的边界点,随机行走模拟,matlab,simulation,Matlab,Simulation,我试图在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 2

我试图在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,则不满足条件,循环终止


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

你太棒了!非常感谢。