exponenta event banner

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