В этом примере показано, как получить доступ и изменить узлы и/или ребра в graph
или digraph
объект с использованием addedge
, rmedge
, addnode
, rmnode
, findedge
, findnode
, и subgraph
функций.
Создайте график с четырьмя узлами и четырьмя ребрами. Соответствующие элементы в s
и t
задайте конечные узлы каждого ребра графика.
s = [1 1 1 2]; t = [2 3 4 3]; G = graph(s,t)
G = graph with properties: Edges: [4x1 table] Nodes: [4x0 table]
Просмотр списка ребер графика.
G.Edges
ans=4×1 table
EndNodes
________
1 2
1 3
1 4
2 3
Использование addnode
для добавления пяти узлов к графику. Эта команда добавляет пять отключенных узлов с идентификаторами узла 5
, 6
, 7
, 8
, и 9
.
G = addnode(G,5)
G = graph with properties: Edges: [4x1 table] Nodes: [9x0 table]
Использование rmnode
для удаления узлов 3, 5 и 6 из графика. Все ребра, соединенные с одним из удаленных узлов, также удаляются. Остальные шесть узлов в графике перенумерованы, чтобы отразить новые числа узлов.
G = rmnode(G,[3 5 6])
G = graph with properties: Edges: [2x1 table] Nodes: [6x0 table]
Использование addedge
для добавления двух ребер к G
. Первое ребро находится между узлом 1 и узлом 5, а второе ребро находится между узлом 2 и узлом 5. Эта команда добавляет две новые строки в G.Edges
.
G = addedge(G,[1 2],[5 5])
G = graph with properties: Edges: [4x1 table] Nodes: [6x0 table]
Использование rmedge
чтобы удалить ребро между узлом 1 и узлом 3. Эта команда удаляет строку из G.Edges
.
G = rmedge(G,1,3)
G = graph with properties: Edges: [3x1 table] Nodes: [6x0 table]
Определите индекс ребра для ребра между узлами 1 и 5. Индекс ребра, ei
, - номер строки в G.Edges
.
ei = findedge(G,1,5)
ei = 2
Добавьте имена узлов к графику, а затем определите индекс узла для узла 'd'
. Числовой индекс узла, ni
, - номер строки в G.Nodes
. Можно использовать обе ni
и имя узла, 'd'
, для обращения к узлу при использовании других функций графика, таких как shortestpath
.
G.Nodes.Name = {'a' 'b' 'c' 'd' 'e' 'f'}'; ni = findnode(G,'d')
ni = 4
Использование subgraph
чтобы извлечь часть графика, содержащую только два узла.
H = subgraph(G,[1 2])
H = graph with properties: Edges: [1x1 table] Nodes: [2x1 table]
Просмотр списка ребер подграфика.
H.Edges
ans=table
EndNodes
______________
{'a'} {'b'}
Информация о узле и ребре для объекта графика содержится в двух свойствах: Nodes
и Edges
. Оба эти свойства являются таблицами, содержащими переменные для описания атрибутов узлов и ребер в графике. Начиная с Nodes
и Edges
являются обеими таблицами, для интерактивного просмотра или редактирования таблиц можно использовать редактор Переменных. Вы не можете добавить или удалить узлы или ребра с помощью редактора Переменных, и вы также не можете редактировать EndNodes
свойство Edges
таблица. Редактор Переменных полезен для управления дополнительными атрибутами узла и ребра в Nodes
и Edges
таблицы. Для получения дополнительной информации см. раздел «Создание и редактирование переменных».
addedge
| addnode
| digraph
| findedge
| findnode
| graph
| rmedge
| rmnode
| subgraph