Mathematica: двойные края - PullRequest
       3

Mathematica: двойные края

1 голос
/ 16 февраля 2012

Я пытаюсь сгенерировать график из списка смежности, но 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 Ответ

4 голосов
/ 16 февраля 2012

Вы можете напрямую преобразовать матрицу смежности в Graph, используя AdjacencyGraph[]. Это, наверное, самое простое решение:

AdjacencyGraph[data]

Если ваша матрица содержит другие элементы, кроме 0 и 1, используйте

AdjacencyGraph@Clip[data]

Чтобы отфильтровать дубликаты из списка ребер неориентированного графа, используйте

Union[Sort /@ edgeList]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...