首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >建筑集的两两比较

建筑集的两两比较
EN

Stack Overflow用户
提问于 2022-01-27 21:27:07
回答 1查看 66关注 0票数 1

试图概括地表述我的问题:我对多个元素进行了成对比较,并希望从这个邻接矩阵(即构建元素组,其中配对比较等于TRUE)构建集合(组)。

例如:我有6个形状。1与2重叠,与3重叠。4单独,5重叠6(见下文)。

如果我对所有形状进行两两比较,并询问它们是否与另一个形状重叠,我将收到以下矩阵。

(请注意:这是我问题的出发点。上面的图片和关于形状的故事只是一个例子)

代码语言:javascript
复制
      [,1]  [,2]  [,3]  [,4]  [,5]  [,6]
[1,]  TRUE  TRUE FALSE FALSE FALSE FALSE # shape 1 overlaps shapes 1 and 2
[2,]  TRUE  TRUE  TRUE FALSE FALSE FALSE # shape 2 overlaps shapes 1, 2 and 3
[3,] FALSE  TRUE  TRUE FALSE FALSE FALSE # etc...
[4,] FALSE FALSE FALSE  TRUE FALSE FALSE
[5,] FALSE FALSE FALSE FALSE  TRUE  TRUE
[6,] FALSE FALSE FALSE FALSE  TRUE  TRUE

我正在寻找一种方法,可以用它构建以下组(组顺序不重要):

  • 组a:形状1、2和3
  • Group b: shape 4
  • Group c:形似5和6

您可以使用以下代码来复制成对比较矩阵:

代码语言:javascript
复制
adjacency_matrix <- matrix(c(TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE),nrow = 6) 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-27 21:27:07

我自己找到解决办法后写了这个问题。希望这有助于解决这个问题,而没有找到正确的词来表述它。

结果,这是图论领域中非常简单的问题。您可以使用igraph将邻接矩阵转换为图,然后确定其组成:

代码语言:javascript
复制
library(igraph)

mygraph <- graph_from_adjacency_matrix(adjacency_matrix)

mycomponents <- components(mygraph) # you can vary between "weak" and "strong", depending on your context

mycomponents$membership # the memberships in the order as they appear in the matrix

[1] 1 1 1 2 3 3

plot(mygraph)

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

https://stackoverflow.com/questions/70885963

复制
相关文章

相似问题

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