смежность

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

Синтаксис

A = adjacency(G)
A = adjacency(G,'weighted')
A = adjacency(G,weights)

Описание

пример

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 с и 0s.

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

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

свернуть все

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

Пример: G = график (1,2)

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

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

Пример: = смежность (G, [1 2 3 4])

Типы данных: удвойтесь | логический
Поддержка комплексного числа: Да

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

свернуть все

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

Советы

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

Введенный в R2015b

Была ли эта тема полезной?