我正试图在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,则条件不满足,循环终止。
将&&
更改为||
,您的代码应该可以正常工作。