0
在igraph中讀取我的二分矩陣時遇到問題。我創建使用Networkx二分圖和導出它們作爲biadjacency矩陣:使用igraph使用Networkx創建的二分圖
data <-readMat("graphToMatlab1.mat")
data1 <- data$graphToMatlab[[1]][[1]]
graph <- graph_from_adjacency_matrix(data1, mode="undirected")
這裏是稀疏矩陣:
bipartite.biadjacency_matrix(Graph[i],row_order=bipartite.sets(stockGraph[i])[0], column_order=bipartite.sets(stockGraph[i])[1],format='csr')
然後我使用的igraph導入R中的10×10矩陣
data1 10 x 10稀疏矩陣類「dgCMatrix」
[1,] 1 . . . . . . . . .
[2,] . . . . 1 . . . . .
[3,] . . 1 . . 1 . . . .
[4,] . . . . 1 . 1 1 . .
[5,] . . . . . . . . . 1
[6,] . . 1 1 . . 1 . 1 .
[7,] . . 1 1 1 2 . . . .
[8,] . . 1 . . 1 . . . .
[9,] . . 1 1 . . . 1 . .
[10,] . 2 . . . . . . . .
圖
IGRAPH U--- 10 21 --
+ edges:
[1] 1-- 1 2-- 5 2--10 2--10 3-- 3 3-- 6 3-- 7 3-- 8 3-- 9 4-- 5 4-- 6 4-- 7 4-- 8 4-- 9 5-- 7 5--10 6-- 7 6-- 7 6-- 8 6-- 9
[21] 8-- 9
因此,這是錯誤的,因爲它沒有考慮到,有兩種類型的頂點(缺少的屬性部分)。所以我認爲這是因爲我輸出圖的方式(使用bipartite.biadjacency matrix),但是有沒有辦法繞過這個問題?要麼igraph讀取矩陣,要麼我在Networkx中導出數據?
感謝您的一個部分,它的工作!我在一個循環中導出矩陣,導致列類型丟失。我只做了'g = bipartite.biadjacency_matrix(G,row_order = bipartite.sets(stockGraph [i])[0], column_order = bipartite.sets(stockGraph [i])[1]).todense()' 所以我刪除了格式='csr')從bipartite.adjacency矩陣),它的工作! – user3767071