问题描述
我正在 R 中寻找一种方法来搜索二维点云以查找给定半径内的 n 个最近邻居或邻居(最终我需要能够同时执行这两项操作)。我习惯于在 Matlab 中使用 kd-tree 进行此操作,该树非常简单且效果很好:您使用 KDTreeSearcher
种植一棵树,然后使用 knnsearch
查询它。这样做的价值在于,一旦你创建了一个 kd-tree(可能有很多数据),你就可以一遍又一遍地查询它。
在 R 中,我可以通过以下方式进行 kd-tree 搜索:
library(RANN)
x <- c(1,2.3,3.1,4.1,5)
y <- c(3.2,2.1,2.5,5)
xy <- cbind(x,y)
xyQ <- cbind(3.5,3.5)
nn <- nn2(xy,query = xyQ,radius = 2.0,searchtype = c("radius"),k = 3)
哪个返回
$nn.idx
[,1] [,2] [,3]
[1,] 3 4 2
$nn.dists
[,1] [,2] [,] 0.7211103 1.16619 1.843909
这里,nn2 生长 kd-tree 并在一个步骤中搜索它。我想取回 kd-tree 并能够重复查询它。 R 中有各种 kd-tree 实例,其中一些似乎没有按照他们所说的去做,但是我还没有找到一个可以让我创建一个 kd-tree 然后反复搜索它的实例。我也不喜欢 kd-trees。如果有另一种方法可以很好地扩展大数据集并提供我正在寻找的功能,我很乐意使用它。
有什么建议吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)