如何用MATLAB在指定范围内生成多个互不重叠的二维随机坐标

如何用MATLAB在指定范围内生成多个互不重叠的二维随机坐标

  1. 笔者做实验仿真时遇到了这个问题,然后查阅了很多有关MATLAB生成不重叠的随机数的博客,但关于互不重叠的二维随机坐标的方法很少见,因此分享一下我的解决方案(因为方法是一步步摸索来的,所以整体从问题背景开始分成了4步来分析的)。
  2. 当坐标点的可选范围足够小时,随机取点容易出现重叠现象,重点就在于“互不重叠”,对于二维坐标,互不重叠就意味着横纵坐标都不能同时相等。

1)问题背景

  1. 第一步 假设存在以坐标原点为中心、面积为10×10平方千米的区域,该区域最初仅具有10个红色方块,其随机分布。但我们决定将所有方块放置于该区域中心的5×5平方千米区域内。

  2. 解决方法 这个问题很简单,使用rand()方法即可。在MATLAB中,rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组。
    如果要求在区间(a,b)内产生m行n列的随机数r = a + (b-a).*rand(m,n)。

  3. MATLAB 程序如下:

%图一
x1=rand(10,1)*5000-2500;  %横坐标在(-2500,2500)范围内,生成1*10的随机矩阵
y1=rand(1,10)*5000-2500;  %纵坐标在(-2500,2500)范围内,生成1*10的随机矩阵
figure(1)
plot(x1,y1,'s
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值