我正在尝试在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
答案 0 :(得分:0)
while循环的条件是两个语句的结合。
while (abs(x)< b && abs(y)<z)
因此,如果其中一个是假的,则不满足条件并且循环终止。
将&&
更改为||
,您的代码应该正常运行。