首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >igraph graph.adjacency weighted=NULL

igraph graph.adjacency weighted=NULL
EN

Stack Overflow用户
提问于 2013-10-29 00:20:49
回答 1查看 710关注 0票数 0

我试图得到图中带权边的矩阵的加权度分布和未加权度分布。我使用了graph.adjacency函数,例如

代码语言:javascript
复制
newMatrix<-graph.adjacency(matrix, weighted=NULL, mode="undirected", diag=FALSE) 

但是加权论证并没有给出我所期望的结果。例如,对于具有下列值的3x3矩阵:

代码语言:javascript
复制
    [,1][,2][,3]
[1,]  1   2   2
[2,]  2   2   0
[3,]  2   0   3

对于参数weighted=NULL和diag=FALSE,我希望得到一个邻接矩阵,例如:

代码语言:javascript
复制
    [,1][,2][,3]
[1,]  .   1   1
[2,]  1   .   .
[3,]  1   .   .

因此,未加权边向量的度分布将是度(2,1,1)。尽管如此,该函数仍返回一个加权矩阵。返回的邻接矩阵为:

代码语言:javascript
复制
    [,1][,2][,3]
[1,]  .   2   2
[2,]  2   .   .
[3,]  2   .   .

我已经尝试将加权参数更改为TRUE,将de模式更改为min,max...但是结果总是给我返回一个加权矩阵。

EN

回答 1

Stack Overflow用户

发布于 2013-10-29 02:29:13

当为weight=NULLmode=undirected时,graph.adjacency将(对称)邻接矩阵的i,j项解释为i,j之间的边数。可以通过更改mode参数来更改这种解释(请参见文档)。

要仅对每条边计数一次(这似乎是您想要执行的操作),只需重新缩放输入矩阵即可

代码语言:javascript
复制
m <- matrix(c(1,2,2,2,2,0,2,0,3),nrow=3,ncol=3,byrow=TRUE)
mscaled <-ifelse(m>=1,1,0)
newMatrix<-graph.adjacency(mscaled, weighted=NULL, mode="undirected", diag=FALSE) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19639963

复制
相关文章

相似问题

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