exponenta event banner

смежность

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

Описание

пример

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

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)около-numnodes(G).

Совет

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

См. также

| | |

Представлен в R2015b