2D Random path within a unit square

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)

回答 (2 件)

Andrei Bobrov
Andrei Bobrov 2017 年 5 月 21 日
編集済み: Andrei Bobrov 2017 年 5 月 21 日

0 投票

n=1000;
mypath = rand(n,2);
m = cumsum(mypath);
mout = m./m(end,:); % MATLAB >= R2016b
mout = bsxfun(@rdivide,m,m(end,:)); % MATLAB < R2016b
Image Analyst
Image Analyst 2017 年 5 月 21 日

0 投票

I have a number of random walk demos and I've attached them. Feel free to use them however you wish.

2 件のコメント

KalMandy
KalMandy 2017 年 5 月 21 日
sorry, I could not find the solution with this.
Image Analyst
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.

サインインしてコメントする。

質問済み:

2017 年 5 月 21 日

コメント済み:

2017 年 5 月 22 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by