3

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

4

2 回答 2

2

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

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

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

编辑:
对于低维点(本例中为 3),查看 k-NN 算法应该更有效,正如我在其他答案中提出的那样。

于 2013-02-26T16:45:47.327 回答
0

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

于 2013-02-26T16:35:21.870 回答