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

时间:2014-02-09 19:51:56

标签: 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 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

1 个答案:

答案 0 :(得分:0)

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

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

因此,如果其中一个是假的,则不满足条件并且循环终止。

&&更改为||,您的代码应该正常运行。