Generate random coordinates around a circle

How can I generate 15 random 2-D coordinates around a circle of radius R with the center of the circle being a defined [x y] 2-D coordinate? Thanks

4 件のコメント

Cedric
Cedric 2013 年 7 月 31 日
What have you tried so far?
John
John 2013 年 7 月 31 日
I can generate the random coordinates within R (below) but I don't know how to change them so that they are distributed around coordinate, say [20 30]
R.*rand(15,2)
Richard Brown
Richard Brown 2013 年 7 月 31 日
Hint: polar coordinates
John
John 2013 年 7 月 31 日
Unfortunately, I rarely use Matlab, I have no clue how to do it even with the polar coordinates hint

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

回答 (2 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 31 日
編集済み: Azzi Abdelmalek 2013 年 8 月 1 日

1 投票

x0=10; % x0 an y0 center coordinates
y0=20;
radius=10; % radius
angle=-pi:0.1:pi;
angl=angle(randperm(numel(angle),15));
r=rand(1,15)*radius;
x=r.*cos(angl)+x0;
y=r.*sin(angl)+y0;
xc=radius.*cos(angle)+x0;
yc=radius.*sin(angle)+y0;
scatter(xc,yc,'.r')
hold on
scatter(x,y)
xlim([-radius radius]+x0)
ylim([-radius radius]+y0)
axis square
hold off

2 件のコメント

Richard Brown
Richard Brown 2013 年 8 月 1 日
編集済み: Richard Brown 2013 年 8 月 1 日
Again, you're choosing from an artificially finite set (63) of evenly spaced angles there. Also, this method will cluster points near the centre of the circle.
John
John 2013 年 8 月 1 日
The link http://matlab.wikia.com/wiki/FAQ#How_do_I_create_a_set_of_random_locations_within_a_circle.3F provided by Richard Brown worked, Thanks you all for your help

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

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 31 日
編集済み: Azzi Abdelmalek 2013 年 7 月 31 日

0 投票

x0=10; % x0 and y0 are center coordinates
y0=20;
r=1; % radius
angle=-pi:0.1:pi;
angl=angle(randi(numel(angle),15,1))
x=r*cos(angl)+x0
y=r*sin(angl)+y0
scatter(x,y)
xlim([-r r]+x0)
ylim([-r r]+y0)
axis square

5 件のコメント

Richard Brown
Richard Brown 2013 年 7 月 31 日
I presume you mean
angl = 2*pi*rand(1, 15)
John
John 2013 年 7 月 31 日
This seems to work but the coordinates seem to be distributed along the circle circumference. Is there a way to distribute them all over the circle? Thanks
Richard Brown
Richard Brown 2013 年 7 月 31 日
編集済み: Richard Brown 2013 年 7 月 31 日
I seem to recall Roger Stafford answering this very question maybe yesterday? Could be worth trawling through recent questions to have a look. edit Actually, it was a while ago, but it got updated yesterday:
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 31 日
Do you mean inside the circle?
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 31 日
Richard, I think it's better to use randperm, with rand or randi there is a risk to have repetition

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

カテゴリ

ヘルプ センター および File ExchangeRandom Number Generation についてさらに検索

質問済み:

2013 年 7 月 31 日

Community Treasure Hunt

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

Start Hunting!

Translated by