2D Random path within a unit square
6 次查看(过去 30 天)
显示 更早的评论
Hi all, I want to generate a random path within a unit square and get the x,y coordinates of n=1000 points on it. start point and the end point can be picked up from the vertices of the unit square, i.e, (0,0), (0,1),(1,0),(1,1).
The code I have up to now is given as follows. But it does not restrict the path to lie inside the unit square. How can I solve this?
n=1000;
mypath = rand(n,2);
xp=mypath(:,1);
xp_s=cumsum(xp);
yp=mypath(:,2);
yp_s=cumsum(yp);
plot(xp_s,yp_s)
0 个评论
回答(2 个)
Andrei Bobrov
2017-5-21
编辑:Andrei Bobrov
2017-5-21
n=1000;
mypath = rand(n,2);
m = cumsum(mypath);
mout = m./m(end,:); % MATLAB >= R2016b
mout = bsxfun(@rdivide,m,m(end,:)); % MATLAB < R2016b
0 个评论
Image Analyst
2017-5-21
I have a number of random walk demos and I've attached them. Feel free to use them however you wish.
2 个评论
Image Analyst
2017-5-22
In your loop, simply don't add the next random step if it would take you outside the unit box. Just get another step instead.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Random Number Generation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!