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 требуется, чтобы быть матрицей 2D столбца под названием EndNodes это задает добавляемые ребра графика.

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

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

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

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

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

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

свернуть все

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

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

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

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

Введенный в R2015b