Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Matlab中查找点特定半径内的所有邻居_Matlab - Fatal编程技术网

在Matlab中查找点特定半径内的所有邻居

在Matlab中查找点特定半径内的所有邻居,matlab,Matlab,我正在实施Kraskov等人(2004)论文中的等式8,并存在以下问题: 给定向量X=[X_1,…,X_N]和r=[r_1,…,r_N],我需要计算A=[A_1,…,A_N]其中A_I是r_I半径内X的点数 如果r是一个固定的数字,也就是说,如果每个点周围的半径对于所有点都是固定的,我可以很容易地使用。但因为它是一个向量(每个点的半径不同),我不知道如何快速实现。穷举搜索(或制作任何N^2大小的距离数组)是不好的,因为N大约有一百万个 这不是一个直接的答案,但您可能希望按“x”坐标(或任何其他坐

我正在实施Kraskov等人(2004)论文中的等式8,并存在以下问题:

给定向量
X=[X_1,…,X_N]
r=[r_1,…,r_N]
,我需要计算
A=[A_1,…,A_N]
其中
A_I
r_I
半径内
X
的点数


如果
r
是一个固定的数字,也就是说,如果每个点周围的半径对于所有点都是固定的,我可以很容易地使用。但因为它是一个向量(每个点的半径不同),我不知道如何快速实现。穷举搜索(或制作任何
N^2
大小的距离数组)是不好的,因为
N
大约有一百万个

这不是一个直接的答案,但您可能希望按“x”坐标(或任何其他坐标)对点进行一阶升序,并确保半径的顺序与点的顺序一致。从那时起,你只需要做每点2检查。一个是看它是否到达前几点,另一个是看它是否到达下一点。希望这有帮助。不确定它在matlab中的性能如何,但升序应该不超过O(logn),算法应该在O(n)中运行,因为每个点的操作数是恒定的。给我们一个输入和输出示例1)X_i中有多少个维度?2) 用于距离度量的欧几里德范数?3) 你能为几个点给出一个简单的工作示例吗?不是一个直接的答案,但你可能希望按“x”坐标(或任何其他坐标)对点进行一阶升序,并确保半径的顺序与点的顺序一致。从那时起,你只需要做每点2检查。一个是看它是否到达前几点,另一个是看它是否到达下一点。希望这有帮助。不确定它在matlab中的性能如何,但升序应该不超过O(logn),算法应该在O(n)中运行,因为每个点的操作数是恒定的。给我们一个输入和输出示例1)X_i中有多少个维度?2) 用于距离度量的欧几里德范数?3) 你能为几个pts提供一个简单的工作示例吗?