两组3D点之间的欧几里得距离

3

如何找到两个3D点集的最近点(其中一个包含400个点,另一个包含2000个点),然后计算出集合1与第一部分结果之间的欧几里得距离?


分享你的代码...提示是使用knnsearchpdist2 - Autonomous
2个回答

2
你可以使用pdist2计算所有距离,然后选择最小的距离。
allDist = squareform( pdist2( set1, set2 ) );
[minDist nni] = min( allDist, [], 2 ); 

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

编辑:
对于低维度点(例如此示例中的 3 维),应该更有效地查看 k-NN 算法,如 我的另一个答案 所建议的那样。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接