【问题标题】:Euclidean distance between two set of 3D points两组 3D 点之间的欧几里得距离
【发布时间】:2013-02-12 04:32:48
【问题描述】:

如何找到两组 3D 点的最近点(数量不同,set1 包括 400 个点,set2 包括 2000 个点),然后找到 set1 与问题第一部分结果之间的欧几里德距离?

【问题讨论】:

  • 分享你的代码...提示使用knnsearchpdist2

标签: matlab nearest-neighbor euclidean-distance


【解决方案1】:

您可以使用pdist2 计算所有距离,然后选择最小距离。

allDist = squareform( pdist2( set1, set2 ) );
[minDist nni] = min( allDist, [], 2 ); 

现在minDist 保存set1 中每个点到其最近邻点 (set2(nni)) 的最小距离。

编辑:
对于低维点(本例中为 3),按照my other answer 中的建议,查看 k-NN 算法应该更有效。

【讨论】:

    【解决方案2】:

    您是否考虑过使用k-Nearest Neighbors (kNN) 搜索?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-29
      • 2023-03-25
      • 2021-01-30
      • 2016-02-15
      • 2014-01-17
      • 2020-09-25
      • 2019-06-19
      • 2020-06-10
      相关资源
      最近更新 更多