ismultigraph

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

Синтаксис

Описание

пример

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

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

Примеры

свернуть все

Использование 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. The axes 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. The axes contains an object of type graphplot.

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

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

Постройте график результата.

plot(G)

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

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

свернуть все

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

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

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

Введенный в R2018a