addedge

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

Описание

пример

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. The 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  

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

свернуть все

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

Пример: 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"

Строковые массивы

Пример: ["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 является двухколоночной матрицей, называемой EndNodes который определяет добавляемые ребра графика.

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

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

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

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

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

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

свернуть все

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

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

расширить все

Поведение изменено в R2018a

Введенный в R2015b