有没有办法在Matlab中限制随机?

时间:2011-11-16 08:33:04

标签: matlab random

假设我想使用rand生成一组坐标(x,y)。取生成的随机集中的任何一个点,距离 此点这些点(最近/第一层)环绕它可以限制在一定范围内。概览效果看起来“这些随机点均匀分布

3 个答案:

答案 0 :(得分:1)

所有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的结果:

Scattered points

点之间距离的直方图:

Distance histogram

答案 1 :(得分:1)

限制关于点(x,y)的随机坐标与距离' r'更像是在中心(x,y)和半径' r'中选择一个圆圈中的随机点。

下面应该有帮助

http://www.mathworks.com/matlabcentral/answers/294-generate-random-points-inside-a-circle

答案 2 :(得分:-1)

使用模数

mod([1:5],3)
ans =
    1     2     0     1     2 

http://www.mathworks.co.uk/help/techdoc/ref/mod.html