【发布时间】:2011-11-16 08:33:03
【问题描述】:
假设我想使用rand 生成一组坐标(x,y)。取生成随机集的任意一个点,此点与那些点(最近/第一层)环绕之间的距离它可以限制在一定范围内。总览效果看起来“这些随机点是均匀分布的。
【问题讨论】:
假设我想使用rand 生成一组坐标(x,y)。取生成随机集的任意一个点,此点与那些点(最近/第一层)环绕之间的距离它可以限制在一定范围内。总览效果看起来“这些随机点是均匀分布的。
【问题讨论】:
限制距离为 'r' 的点 (x,y) 的随机坐标更像是选择圆心 (x,y) 和半径为 'r' 的圆中的随机点。
下面应该有帮助
http://www.mathworks.com/matlabcentral/answers/294-generate-random-points-inside-a-circle
【讨论】:
所有 n 个点必须在一个圆内。这个圆的直径是任意两点之间的最大距离(d_max)。使用极坐标:r = (d_max / 2) * sqrt(rand(n, 1)); phi = 2 * pi * rand(n, 1); 需要平方根才能获得均匀的面密度。以通常的方式将极坐标转换为笛卡尔坐标:x = x0 + r .* cos(phi); y = y0 + r .* sin(phi); 其中(x0, y0) 给出了圆的中心。
d_max = 10 的结果:
点间距离的直方图:
【讨论】:
pol2cart 可用于从极坐标到笛卡尔坐标的转换 (mathworks.com/help/techdoc/ref/pol2cart.html)。
【讨论】: