addedge

Добавьте новое ребро в график

Синтаксис

H = addedge(G,s,t)
H = addedge(G,s,t,w)
H = addedge(G,s,t,EdgeTable)
H = addedge(G,EdgeTable)

Описание

пример

H = addedge(G,s,t) добавляет ребро, чтобы изобразить в виде графика G между узлами s и t. Если узел, заданный s или t, не присутствует в G, то тот узел добавляется. Новый график, H, эквивалентен G, но включает новое ребро и любые необходимые новые узлы.

пример

H = addedge(G,s,t,w) также задает веса, w, для ребер между s и t.

H = addedge(G,s,t,EdgeTable) добавляют ребра между узлами s и t с атрибутами, заданными таблицей, EdgeTable.

пример

H = addedge(G,EdgeTable) добавляют ребра с атрибутами, заданными таблицей, EdgeTable. Вход EdgeTable должен смочь быть конкатенированным с G.Edges.

Примеры

свернуть все

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

G = graph([1 2],[2 3])
G = 
  graph with properties:

    Edges: [2x1 table]
    Nodes: [3x0 table]

G = addedge(G,[2 1],[4 3])
G = 
  graph with properties:

    Edges: [4x1 table]
    Nodes: [4x0 table]

Создайте ориентированного графа со взвешенными ребрами.

G = digraph({'A' 'B' 'C'}, {'D' 'C' 'D'}, [10 20 45])
G = 
  digraph with properties:

    Edges: [3x2 table]
    Nodes: [4x1 table]

Добавьте три новых взвешенных ребра в график. addedge также автоматически добавляет любые необходимые новые узлы в график.

G = addedge(G, {'A' 'D' 'E'}, {'E' 'B' 'D'}, [5 30 5])
G = 
  digraph with properties:

    Edges: [6x2 table]
    Nodes: [5x1 table]

Создайте график, ребра которого имеют атрибуты Weight и Power. Используйте таблицу ребра, чтобы создать график.

EdgeTable = table([1 2; 2 3; 2 4; 2 5; 5 6; 5 7; 5 8], ...
    {'on','off','off','on','on','on','off'}',[10 20 20 10 10 10 20]', ...
    'VariableNames',{'EndNodes','Power','Weight'});
G = graph(EdgeTable)
G = 
  graph with properties:

    Edges: [7x3 table]
    Nodes: [8x0 table]

Добавьте два новых ребра в график путем составления меньшей таблицы, которая может быть конкатенирована к G.Edges. Обратите внимание на то, что эта меньшая таблица должна использовать тот же порядок переменных как G.Edges.

NewEdges = table([5 9; 3 6], {'on' 'off'}', [10 20]', ...
    'VariableNames',{'EndNodes','Power','Weight'});
G = addedge(G,NewEdges)
G = 
  graph with properties:

    Edges: [9x3 table]
    Nodes: [9x0 table]

Просмотрите новый список ребер графика, который включает добавленные ребра.

G.Edges
ans=9×3 table
    EndNodes    Power    Weight
    ________    _____    ______

     1    2     'on'       10  
     2    3     'off'      20  
     2    4     'off'      20  
     2    5     'on'       10  
     3    6     'off'      20  
     5    6     'on'       10  
     5    7     'on'       10  
     5    8     'off'      20  
     5    9     'on'       10  

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

свернуть все

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

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

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

Пары узла, заданные в качестве отдельных аргументов индексов узла или имен узла. Столь же расположенные элементы в s и t задают входные и выходные узлы для ребер в графике.

Если вы добавляете ребра с помощью имен узла, которые уже не присутствуют в графике, то addedge добавляет новые имена узла в нижнюю часть таблицы g.Nodes.Name. Если s и t являются категориальными массивами, то категории s и t используются в качестве имен узла. Это может включать категории, которые не являются элементами в s или t.

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

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

Скаляр

Пример 1

Вектор

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

Имя узла

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

Пример: 'A'

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

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

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

Пример: "A"

StringArray

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

Категориальный массив

Пример: categorical("A")

Категориальный массив

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

Пример: G = addedge(G, [1 2], [3 4]) добавляет два ребра в график: один от узла 1 к узлу 3, и один от узла 2 к узлу 4.

Пример: G = addedge(G, {'a' 'a'; 'b' 'c'}, {'b' 'c'; 'c' 'e'}) добавляет четыре ребра в график, первое из которых идет от 'a' до 'b'.

Вес ребра, заданный как скаляр, вектор или матрица.

  • Если w является скалярным или вектором - строкой, то это - скаляр, расширенный, чтобы задать вес для каждого ребра в s и t.

  • Если w является вектор-столбцом, то он должен иметь ту же длину как s(:) и t(:).

  • Если w является матрицей, то он должен иметь то же число элементов как s(:) и t(:).

Пример: G = addedge(G, [2 2], [4 5], [1 100]') добавляет два ребра с весами 1 и 100.

Типы данных: single | double
Поддержка комплексного числа: Да

Атрибуты ребра, заданные как таблица. Если вы не задаете s и t, чтобы задать добавляемые ребра графика, то первая переменная в EdgeTable требуется, чтобы быть матрицей 2D столбца под названием EndNodes, который задает добавляемые ребра графика.

EdgeTable должен иметь эти общие свойства:

  • Для взвешенных графиков EdgeTable должен содержать переменную Weight.

  • Если график имеет другие атрибуты ребра, то EdgeTable должен содержать все те же переменные как G.Edges, чтобы гарантировать совместимость.

  • Порядок переменных в EdgeTable должен совпасть с порядком G.Edges.

Типы данных: table

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

свернуть все

Выведите график, возвращенный как объект graph или digraph.

Вопросы совместимости

развернуть все

Поведение изменяется в R2018a

Введенный в R2015b