matlab中 如何在区域中产生N个随机点,并以这N个随机点为圆心,r为半径绘制N个圆?新手,只求程序,谢谢

如题所述

clear;
clf;
N=input('请输入圆的个数:');
M=input('请输入产生圆心的区域(例如 [2,6]) :');
r=input('请输入圆的半径(例如输入 3) :')
m=M(1);
n=M(2);
x=(n-m)*rand(1,N)+m;
y=(n-m)*rand(1,N)+m;
A0=[];
for i=1:N
sita=0:pi/20:2*pi;%角度[0,2*pi]
plot(x(i)+r*cos(sita),y(i)+r*sin(sita));
hold on
A=[x(i),y(i)];
B=[A0;A];
A0=B;
end
grid on
axis equal
title('随机圆')
xlabel('横坐标x')
ylabel('纵坐标y')
disp('圆心坐标为:')
B

---------试运行结果--------------
请输入圆的个数:4
请输入产生圆心的区域(例如 [2,6]) :[-5,5]
请输入圆的半径(例如输入 3) :3

r =

3

圆心坐标为:

B =

3.8651 4.7868
-4.7133 2.1269
-0.1010 0.0047
-3.3207 -0.2891追问

怎么显示出圆心呢,要求圆心和圆同时显示... 谢谢

追答

clear;
clf;
N=input('请输入圆的个数:');
M=input('请输入产生圆心的区域(例如 [2,6]) :');
r=input('请输入圆的半径(例如输入 3) :')
m=M(1);
n=M(2);
x=(n-m)*rand(1,N)+m;
y=(n-m)*rand(1,N)+m;
A0=[];
for i=1:N
sita=0:pi/20:2*pi;%角度[0,2*pi]
plot(x(i)+r*cos(sita),y(i)+r*sin(sita));
hold on
plot(x(i),y(i),'.');
hold on
A=[x(i),y(i)];
B=[A0;A];
A0=B;
end
grid on
axis equal
title('随机圆')
xlabel('横坐标x')
ylabel('纵坐标y')
disp('圆心坐标为:')
B
请输入圆的个数:5
请输入产生圆心的区域(例如 [2,6]) :[-6,6]
请输入圆的半径(例如输入 3) :3

r =

3

圆心坐标为:

B =

-0.9871 0.4695
5.7966 2.3773
-2.3825 1.9983
2.4132 -3.8624
1.9961 -4.4638

温馨提示:内容为网友见解,仅供参考
无其他回答

matlab中 如何在区域中产生N个随机点,并以这N个随机点为圆心,r为半径...
clear;clf;N=input('请输入圆的个数:');M=input('请输入产生圆心的区域(例如 [2,6]) :');r=input('请输入圆的半径(例如输入 3) :')m=M(1);n=M(2);x=(n-m)*rand(1,N)+m;y=(n-m)*rand(1,N)+m;A0=[];for i=1:N sita=0:pi\/20:2*pi;%角度[0,2*pi]plot(...

matlab 如何在指定圆域中生成随机数
1)在指定圆的最小外切正方形内均匀布n个点 2)删除圆外的m个点 3)重复1、2步骤,每次重复1时的布置点数n为上一次删除点数m 因为正方形的面积与圆面积之比为pi\/4约为0.75 循环第二次时删除的点数m就仅为0.0625*需要点数,收敛快。n=1000;%总点数 r=5;%半径 x=2*r*rand(1,n)-r;...

matlab如何生成多个不重叠的“随机”圆(圆心坐标也行)
function xy_pos = gen(n,b,r)%假设你要的圆是在矩形内部%n是数目%b是边长%r是半径c=0;xy_pos=[];while c<n %转换到r~b-r的范围内,如果你说的圆在矩形内是圆心在的话,这个地方需要改一下 x = rand*(b - 2*r) + r; y = rand*(b - 2*r) + r; %产生第...

matlab中如何产生N个随机数,和为定值M
1、首先在电脑中,找到并打开MATLAB软件,二项分布随机数的产生。2、接着输入二项分布随机数X~b(n,p),n为发生次数,p为发生概率,如下图所示。3、然后输入泊松分布,参数为p,如下图所示。4、接着输入指数分布,参数为λ,如下图所示。5、最后正态分布,X~N(μ,δ^2),如下图所示,...

matlab怎样在特定区域内产生随机的点?
需要转到极坐标。你应该需要产生在园内均匀分布的点,也就是说rdrdk内的随机点数相同(r为半径,k为角度),与r成正比。所以r的概率密度函数是p(r) = ar,a是归一化常数,可解得a=2。所以r的分布函数为F(r) = r^2,其反函数为sqrt(r)。因此先产生[0,1]的随机数,然后开根号即可得r...

matlab 中想在一定分布的数据中随机采样N个数据,怎么做呢
随机数的生成通常有两种方法:一是依赖一些专用的电子元件发出随机信号,这种方法又称为物理生成法。另一类就是通过数学的算法,仿照随机数发生的规律计算出随机数,由于产生的随机数是有数学公式计算出来的,所以这类随机数又称为伪随机数。你也可以让matlab生成一个随机的正态分布矩阵,然后用normstat来求得生成矩阵的...

如何在一个范围内生成随机数 matlab
n])产生 m行,n列(0,1)范围内均匀分布的伪随机数 如果要求在区间(a,b)内产生均匀分布的随机数 r = a + (b-a).*rand([m n]));matlab 生成随机整数的方法:1,生成0-5之间的10个随机整数 在matlab主窗口中输入round(rand(1,10)*5)回车 2,生成1个随机整数,,命令 round(rand(...

matlab产生N个随机点。。每两点之间的距离必须大于一个固定值M...
先随机产生一个随即点x1,再产生一个随即点x2,求abs(x1-x2)是否大于M,若是,记a1=x1,a2=x2,继续产生随即点,若不是,扔掉,产生随即点x3,求abs(x3 -ai),i=1,2.继续判断,若是,则a3=x3,继续产生下一点x4,继续判断,知道an=xn。方可停止。.随机点的产生可以用random函数。。

matlab课堂作业关于随机点的一些问题
1、【随机生成点】:直接用rand函数生成点的坐标;2、【点与点随机连成边】:用rand函数生成N*N矩阵,大于某设定门限值(例如0.8)则连边;3、【计算任意两点间的最短路径】,分两种做法:(1)随机取两点,计算最短路径,用graphshortestpath函数;(2)把任意两点间的最短路径全部计算出来,形成...

如何利用MATLAB产生随机坐标
思路就是,先生成一个随机的在1*1内的点,然后生成一个随机方向,走0.05看是否在1*1范围内,若在加到结果,不在舍弃,直到取尽100个点。set rand seedctime = datestr(now,30);tseed = str2num(ctime((end - 5):end));rand('seed',tseed);% rand a point for first stepsx = rand...

相似回答