【发布时间】:2018-01-13 00:45:46
【问题描述】:
我目前正在尝试(理想情况下)使用 igraph 生成常规邻接矩阵。我希望每个单元与 k 个人成为邻居。
对于 k = 2,我希望得到:
library(igraph)
as_adj(make_graph(c(1, 2, 1, 10, 2, 3, 3, 4, 4, 5 ,5,6, 6,7, 7,8, 8,9, 9, 10), directed = FALSE))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0 1 0 0 0 0 0 0 0 1
[2,] 1 0 1 0 0 0 0 0 0 0
[3,] 0 1 0 1 0 0 0 0 0 0
[4,] 0 0 1 0 1 0 0 0 0 0
[5,] 0 0 0 1 0 1 0 0 0 0
[6,] 0 0 0 0 1 0 1 0 0 0
[7,] 0 0 0 0 0 1 0 1 0 0
[8,] 0 0 0 0 0 0 1 0 1 0
[9,] 0 0 0 0 0 0 0 1 0 1
[10,] 1 0 0 0 0 0 0 0 1 0
有没有一种方法可以使用igraph 中的现有函数来创建像上面那样的图形,但是对于一个通用的 k?谢谢。
【问题讨论】:
-
您说您想要一个“循环图”,但似乎不清楚这对 k>2 意味着什么。您是否只想要一个所有节点都具有度数 =k 的图?
-
@G5W 是的,就是这个想法,谢谢!
-
这称为“正则图”,而不是“循环图”。您能否更新标题以反映您实际寻找的内容?从您的其他 cmets 看来,您实际上想要一个“连接的正则图”。