Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何找到两组 3D 点的最近点(数量不同,set1 包括 400 个点,set2 包括 2000 个点),然后找到 set1 与问题第一部分结果之间的欧几里得距离?
您可以使用pdist2计算所有距离,然后选择最小距离。
pdist2
allDist = squareform( pdist2( set1, set2 ) ); [minDist nni] = min( allDist, [], 2 );
现在minDist保存每个点set1到其最近邻居 ( set2(nni)) 的最小距离。
minDist
set1
set2(nni)
编辑: 对于低维点(本例中为 3),查看 k-NN 算法应该更有效,正如我在其他答案中提出的那样。
您是否考虑过使用k-Nearest Neighbors (kNN)搜索?
k-Nearest Neighbors (kNN)