Matlab 如何分配Voronoi细胞所属的dotes?
我想知道如何找到每个Voronoi细胞中点的索引 例如(简单地说) 这里有3个单元格,我想找出哪个单元格内的点,哪个单元格由一组种子点定义。这导致将空间划分为单元,每个种子点一个单元。在您的示例中,种子点是Matlab 如何分配Voronoi细胞所属的dotes?,matlab,matrix,voronoi,Matlab,Matrix,Voronoi,我想知道如何找到每个Voronoi细胞中点的索引 例如(简单地说) 这里有3个单元格,我想找出哪个单元格内的点,哪个单元格由一组种子点定义。这导致将空间划分为单元,每个种子点一个单元。在您的示例中,种子点是x中的前3个点。每个Voronoi单元包含比任何其他种子点更接近其种子点的所有点的集合。例如,要确定单元1中的点,请查找距离种子点1最近的点集 您可以使用knnsearch()执行此操作。以你为例: % Seed points s = x(:, 1:3); % Find enclosing
x
中的前3个点。每个Voronoi单元包含比任何其他种子点更接近其种子点的所有点的集合。例如,要确定单元1中的点,请查找距离种子点1最近的点集
您可以使用knnsearch()
执行此操作。以你为例:
% Seed points
s = x(:, 1:3);
% Find enclosing Voronoi cell for each data point
idx = knnsearch(s', x', 'k', 1)
% idx(i) = Index of nearest seed point to data point i
这里,我们将
x
的每一列作为一个数据点。第一行是x坐标,第二行是y坐标。这与调用voronoi()
时使用的相同。但是,我认为您在调用plot()
时意外地(?)交换了x和y坐标。我们在将矩阵传递到knnsearch()
时采用转置,因为它期望行对应于点,列对应于维度。我使用x-y维度,因为我将点作为传感器节点的位置处理。。。谢谢你的回答,先生
% Seed points
s = x(:, 1:3);
% Find enclosing Voronoi cell for each data point
idx = knnsearch(s', x', 'k', 1)
% idx(i) = Index of nearest seed point to data point i