subgraph

Извлечение подграфа

Описание

пример

H = subgraph(G,nodeIDs) возвращает подграф G это содержит только узлы, заданные nodeIDs.

H = subgraph(G,idx) задает узлы подграфа с помощью логического вектора.

Примеры

свернуть все

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

s = [1 1 1 1 2 2 2 2 2 2 2 2 2 2 15 15 15 15 15];
t = [3 5 4 2 14 6 11 12 13 10 7 9 8 15 16 17 19 18 20];
G = graph(s,t);
plot(G,'Layout','force')

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

Извлеките подграф из G путем определения, который узлы включать. Нумерация узла в подграфе сбрасывается.

idx = [2 15 16 17 18 19 20 1 3 4 5];
H = subgraph(G,idx);
plot(H,'Layout','force')

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

Создайте и постройте взвешенный график с именованными узлами.

s = [1 1 1 2 2 2 8 8 8 8];
t = [2 3 4 5 6 7 9 10 11 12];
weights = [10 30 40 80 60 60 20 30 90 80];
names = {'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L'};
G = graph(s,t,weights,names);
plot(G,'EdgeLabel',G.Edges.Weight)

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

Извлеките подграф, который содержит узел 'B' и все его соседи. subgraph сохраняет имена узла и вес ребра. Однако числовые идентификаторы узла в H перенумерованы по сравнению с G.

N = neighbors(G,'B');
H = subgraph(G, ['B'; N]);
plot(H,'EdgeLabel',H.Edges.Weight)

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])

Идентификаторы узла в виде одного или нескольких индексов узла или имен узла. nodeIDs выбирает подмножество узлов в G сгенерировать подграф, H.

Эта таблица показывает различные способы относиться к одному или нескольким узлам или их числовыми индексами узла или их именами узла.

ФормаОдин узелНесколько узлов
Индекс узла

Скаляр

Пример 1

Вектор

Пример: [1 2 3]

Имя узла

Символьный вектор

Пример: 'A'

Массив ячеек из символьных векторов

Пример: {'A' 'B' 'C'}

Скаляр строки

Пример: "A"

Массив строк

Пример: ["A" "B" "C"]

Пример: H = subgraph(G,[1 2 5])

Пример: H = subgraph(G,{'A' 'B' 'E'})

Вектор выбора узла в виде логического вектора. Подграф содержит только узлы J для которого idx(J) логический 1 TRUE). Индекс узла J в H I(J), где I = find(idx).

Пример: subgraph(G,degree(G)>2)

Типы данных: логический

Выходные аргументы

свернуть все

Подграф, возвращенный как graph или digraph объект. H содержит только узлы, которые были выбраны с nodeIDs или idx. Другие узлы в G (и ребра, соединяющиеся с теми узлами), отбрасываются. Свойства узла и свойства ребра выбранных узлов и ребер перенесены от G в H.

Смотрите graph или digraph для получения дополнительной информации об объектах диаграмм.

Расширенные возможности

Введенный в R2015b