首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何分配Voronoi细胞所属的宠儿?

如何分配Voronoi细胞所属的宠儿?
EN

Stack Overflow用户
提问于 2016-06-26 00:14:28
回答 1查看 388关注 0票数 2

我想知道如何找到位于Voronoi细胞中的点的指数。

例如(简单地)

代码语言:javascript
复制
x=rand(2,6)*10
voronoi(x(1,1:3),x(2,1:3),'*')
hold on
plot(x(2,:),x(1,:),'o')

这里有三个细胞,我想找出哪个细胞内的点

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-27 05:25:04

Voronoi图由一组种子点定义。这导致将空间划分为单元格,每个种子点有一个单元格。在您的示例中,种子点是x中的前3个点。每个Voronoi单元包含与其种子点更接近的所有点的集合,而不是任何其他种子点。例如,要确定单元格1中的哪些点,请查找与种子点1最近的一组点。

您可以使用knnsearch()来完成这个任务。跟随你的榜样:

代码语言:javascript
复制
% 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()时采用转置,因为它希望行对应于点,而列对应于维度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38034098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档