我正在尝试从邻接列表生成图形,但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。 我想知道如何从我的列表中删除这些“重复”。
答案 0 :(得分:4)
您可以使用AdjacencyGraph[]
将邻接矩阵直接转换为Graph
。这可能是最简单的解决方案:
AdjacencyGraph[data]
如果您的矩阵包含除0和1之外的其他元素,请使用
AdjacencyGraph@Clip[data]
要从无向图的边列表中过滤掉重复项,请使用
Union[Sort /@ edgeList]