adjacency

Матрица смежности графика

Описание

пример

A = adjacency(G) возвращает разреженную матрицу смежности для график G. Если (i,j) является ребро в G, затем A(i,j) = 1. В противном случае A(i,j) = 0.

A = adjacency(G,'weighted') возвращает взвешенную матрицу смежности, где для каждого ребра (i,j), значение A(i,j) содержит вес ребра. Если у график нет весов ребер, то A(i,j) устанавливается равным 1. Для этого синтаксиса G должен быть простым графиком, таким что ismultigraph(G) возвращает false.

A = adjacency(G,weights) возвращает взвешенную матрицу смежности с весами ребер, заданными вектором weights. Для каждого ребра (i,j) в GМатрица смежности имеет значение A(i,j) = weights(findedge(G,i,j)). Для этого синтаксиса G должен быть простым графиком, таким что ismultigraph(G) возвращает false.

Примеры

свернуть все

Создайте ориентированный граф с помощью списка ребер, а затем найдите эквивалентное матричное представление соседства графика. Матрица смежности возвращается как разреженная матрица.

s = [1 1 1 2 2 3];
t = [2 3 4 5 6 7];
G = digraph(s,t)
G = 
  digraph with properties:

    Edges: [6x1 table]
    Nodes: [7x0 table]

A = adjacency(G)
A = 
   (1,2)        1
   (1,3)        1
   (1,4)        1
   (2,5)        1
   (2,6)        1
   (3,7)        1

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

A = [0 5 3 0;0 0 1 2; 0 0 0 11; 0 0 0 0]
A = 4×4

     0     5     3     0
     0     0     1     2
     0     0     0    11
     0     0     0     0

G = graph(A,'upper')
G = 
  graph with properties:

    Edges: [5x2 table]
    Nodes: [4x0 table]

G.Edges
ans=5×2 table
    EndNodes    Weight
    ________    ______

     1    2        5  
     1    3        3  
     2    3        1  
     2    4        2  
     3    4       11  

Использование adjacency чтобы вернуть матрицу смежности графика. Независимо от формы матрицы смежности, используемой для построения графика, adjacency функция всегда возвращает симметричную и разреженную матрицу смежности, содержащую только 1с и 0с.

B = adjacency(G)
B = 
   (2,1)        1
   (3,1)        1
   (1,2)        1
   (3,2)        1
   (4,2)        1
   (1,3)        1
   (2,3)        1
   (4,3)        1
   (2,4)        1
   (3,4)        1

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

G = digraph([1 1 1 2 3 4],[2 3 4 4 2 3],[5 6 7 8 9 10]);
G.Edges
ans=6×2 table
    EndNodes    Weight
    ________    ______

     1    2        5  
     1    3        6  
     1    4        7  
     2    4        8  
     3    2        9  
     4    3       10  

Найдите матрицу смежности графика.

A = adjacency(G)
A = 
   (1,2)        1
   (3,2)        1
   (1,3)        1
   (4,3)        1
   (1,4)        1
   (2,4)        1

Эта форма матрицы смежности не включает веса ребер. Используйте 'weighted' опция включения весов кромок в матрицу смежности.

A = adjacency(G,'weighted')
A = 
   (1,2)        5
   (3,2)        9
   (1,3)        6
   (4,3)       10
   (1,4)        7
   (2,4)        8

Предварительный просмотр полной версии матрицы для хранения. Начиная с G является ориентированным графом, матрица смежности не симметрична. Однако матрица смежности симметрична для неориентированных графов.

B = full(A)
B = 4×4

     0     5     6     7
     0     0     0     8
     0     9     0     0
     0     0    10     0

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

свернуть все

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

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

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

Веса кромок, заданные как вектор.

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

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

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

свернуть все

Матрица смежности, возвращенная как разреженная матрица. Размер A является numnodes(G)-by- numnodes(G).

Совет

  • Ребра с нулем веса не видны в разреженной матрице смежности, возвращенной adjacency. Это означает, что взвешенная матрица смежности может представлять взвешенный график только, если нет ребер нулевого веса.

См. также

| | |

Введенный в R2015b