0

我正在尝试获取 igraph 中具有加权边的矩阵的加权度和未加权度分布。我使用了 graph.adjacency 函数,例如

newMatrix<-graph.adjacency(matrix, weighted=NULL, mode="undirected", diag=FALSE) 

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

    [,1][,2][,3]
[1,]  1   2   2
[2,]  2   2   0
[3,]  2   0   3

我希望参数 weighted=NULL 和 diag=FALSE 邻接矩阵,例如:

    [,1][,2][,3]
[1,]  .   1   1
[2,]  1   .   .
[3,]  1   .   .

所以未加权边缘向量的度数分布将是度数(2,1,1)。然而,该函数返回一个加权矩阵。返回的邻接矩阵是:

    [,1][,2][,3]
[1,]  .   2   2
[2,]  2   .   .
[3,]  2   .   .

我试图将加权参数更改为 TRUE 并将 de 模式更改为 min、max ...但结果总是给我一个加权矩阵。

4

1 回答 1

0

weight=NULL和时mode=undirectedgraph.adjacency将(对称)邻接矩阵的 i,j 项解释为 i,j 之间的边数。您可以通过更改mode参数来更改此解释(请参阅文档)。

只计算每条边一次(这似乎是你想要做的),你可以重新调整输入矩阵

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) 
于 2013-10-28T18:29:12.990 回答