gpt4 book ai didi

matlab - 如何生成n个点并限制它们之间的距离大于给定值?

转载 作者:太空宇宙 更新时间:2023-11-03 20:06:27 55 4
gpt4 key购买 nike

我想以均匀分布随机生成 n 个点,使得任意点之间的距离大于某个固定值。

这是我在 MATLAB 中的场景:

  • 我有 M 个红点,我随机生成的均匀分布如下:M 个红点的 x 横坐标是 xr = rand(1, M),y 坐标是M 个红色点是 yr = rand(1, M)
  • 另外,我有 M 个黑点,我生成的黑点与红点类似,即 xb = rand(1, M)yb = rand(1, M).
  • 然后,我计算所有点之间的距离如下:

    x = [xr, xb];
    y = [yr, yb];
    D = sqrt(bsxfun(@minus, x, x').^2 + bsxfun(@minus, y, y').^2);
    d = D(1:M, M + 1:end);
  • 现在,我必须限制距离 d 始终大于某个给定值,比如 d0=0.5

如何做到这一点?

最佳答案

虽然在 math.stackexchange 上讨论了这种采样(相当于非重叠圆圈生成),请参阅 https://mathematica.stackexchange.com/questions/2594/efficient-way-to-generate-random-points-with-a-predefined-lower-bound-on-their-phttps://mathematica.stackexchange.com/questions/69649/generate-nonoverlapping-random-circles ,我想指出另一个涉及准随机数的潜在解决方案。对于准随机 Sobol 序列,有一个声明表示点之间的最小正距离等于 0.5*sqrt(d)/N,其中 d 是维度问题,N 是在超立方体中采样的点数。男人本人的论文http://www.sciencedirect.com/science/article/pii/S0378475406002382

关于matlab - 如何生成n个点并限制它们之间的距离大于给定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29977879/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com