ismultigraph

Определите, имеет ли график несколько ребер

Синтаксис

Описание

пример

tf = ismultigraph(G) возвращает логический 1 TRUE) если G имеет несколько ребер между любыми двумя узлами. В противном случае это возвращает логический 0 ложь).

Условно, ismultigraph возвращает логический 0 ложь) для графиков, которые содержат самоциклы, но никакие повторные ребра. Однако график с несколькими самоциклами считается мультиграфом.

Примеры

свернуть все

Используйте ismultigraph определить, имеет ли входной график несколько ребер между двумя узлами.

Создайте график.

G = graph([1 1 1 1 1 2 2 2],[2 2 3 4 5 6 7 8]);
plot(G)

Figure contains an axes object. The axes object contains an object of type graphplot.

Проверяйте, чтобы видеть если G мультиграф. Результатом является логический 1 TRUE) потому что существует два ребра между узлами 1 и 2.

tf = ismultigraph(G)
tf = logical
   1

Используйте ismultigraph определить, должен ли график быть упрощен.

Распространено столкнуться с дублирующимися ребрами, когда вы создаете пустой график и программно добавляете ребра в него с addedge. Данные, используемые для ребер, должны быть уникальными, чтобы избежать копий.

Чтобы продемонстрировать это, создайте пустой график и матрицу с двумя столбцами случайных чисел. Поскольку случайные числа только между 1 и 5, эти данные производят несколько ребер.

G = graph;
rng default % for reproducibility
X = randi(5,15,2)
X = 15×2

     5     1
     5     3
     1     5
     5     4
     4     5
     1     4
     2     1
     3     5
     5     5
     5     4
      ⋮

Вместо того, чтобы чистить исходные данные, чтобы гарантировать строки уникальны, добавляют все ребра к графику. Постройте график для ссылки.

G = addedge(G,X(:,1),X(:,2));
plot(G)

Figure contains an axes object. The axes object contains an object of type graphplot.

Протестируйте, чтобы видеть, является ли график мультиграфом и, если это, используйте simplify удалить повторенные ребра и самоциклы.

if ismultigraph(G)
    G = simplify(G);
end

Постройте получившийся график.

plot(G)

Figure contains an axes object. The axes object contains an object of type graphplot.

Входные параметры

свернуть все

Введите график в виде любого graph или digraph объект. Используйте graph создать неориентированного графа или digraph создать ориентированного графа.

Пример: G = graph(1,2)

Пример: G = digraph([1 2],[2 3])

Введенный в R2018a