exponenta event banner

Изменение узлов и ребер существующего графика

В этом примере показано, как получить доступ к узлам и/или кромкам в 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 таблицы. Дополнительные сведения см. в разделе Создание и редактирование переменных.

См. также

| | | | | | | |

Связанные темы