Mathematica:重复边缘

时间:2012-02-15 20:45:09

标签: wolfram-mathematica

我正在尝试从邻接列表生成图形,但Mathematica不希望绘制我的图形,因为我认为有多个边缘。 这是我的剧本:

Needs["GraphUtilities`"]
data = Import["adj_matrix.txt", "Table"];
data2 = Flatten[Table[{data[[i, 1]] \[UndirectedEdge] data[[i, 2]]}, {i, 1, 
  Length[data]}]];
graph1 = Graph[data2]

我得到的错误是:     Graph :: supp:不支持混合图形和多图形。

我的列表中没有任何“正确”的副本,唯一出现的重复类型是1-> 2和2-> 1。 我想知道如何从我的列表中删除这些“重复”。

1 个答案:

答案 0 :(得分:4)

您可以使用AdjacencyGraph[]将邻接矩阵直接转换为Graph。这可能是最简单的解决方案:

AdjacencyGraph[data]

如果您的矩阵包含除0和1之外的其他元素,请使用

AdjacencyGraph@Clip[data]

要从无向图的边列表中过滤掉重复项,请使用

Union[Sort /@ edgeList]