0

MatLab からエクスポートされているデータから大きな加重ダイグラフを作成する必要があります。最終的な目標は NNGT を使用して分析することですが、Networkx を使用してビルドしてから NNGT に変換する方が簡単なようです。

「sample.txt」は次のようになります。

1,37
1,76
2,4
2,41
3,2
3,4
4,2
4,3

などなどだから私は試しました:

import networkx as nx
G=nx.DiGraph()
G=nx.read_edgelist('sample.txt')

しかし、これは空のグラフ オブジェクト (0 ノード、0 エッジ) を返します。

Networkxによって以前に提案された答えを試しました: ファイルからグラフをインポートするにはどうすればよいですか? :

with open('sample.txt') as f:
    lines = f.readlines()
myList = [line.strip().split() for line in lines]
G.add_edges_from(myList)

しかし、エラーが発生しました:

NetworkXError: エッジ タプル ['1,37'] は 2 タプルまたは 3 タプルでなければなりません。

だから私は試しました:

tup = tuple(myList)
G.add_edges_from(tup)

しかし、それでも同じエラーが発生しました:

NetworkXError: エッジ タプル ['1,76'] は 2 タプルまたは 3 タプルでなければなりません。

これはエッジを取得しようとしているだけで、まだ重みを扱っていません。

最終的には、次のことができる必要があります。

  1. ノード数を設定して NNGT でダイグラフを作成します - 一部のノードにはエッジがありませんが、存在する必要があります)
  2. ファイルからエッジ (つまり、隣接行列) と重みをインポートします。MatLab からエクスポートできるすべてのファイル タイプは、.txt である必要はありません。

何か案は?

4

2 に答える 2