Matlab 如何分配Voronoi细胞所属的dotes?

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

我想知道如何找到每个Voronoi细胞中点的索引

例如(简单地说)

这里有3个单元格,我想找出哪个单元格内的点,哪个单元格由一组种子点定义。这导致将空间划分为单元,每个种子点一个单元。在您的示例中,种子点是
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