主要内容

邻接

图邻接矩阵

描述

例子

一个=邻接(G返回图的稀疏邻接矩阵G.如果(i, j)是一种边缘G,然后A(i,j) = 1.否则,A(i,j) = 0

一个=邻接(G“加权”)返回一个加权的邻接矩阵,其中每条边(i, j),值(i, j)包含边的权值。如果图没有边权值,那么(i, j)设置为1。对于这个语法,G一定是这样一个简单的图ismultigraph (G)返回

一个=邻接(G权重返回一个加权邻接矩阵,其边权值由向量给定权重.对于每条边(i, j)G,则邻接矩阵有值A(i,j) = weights(findge (G,i,j)).对于这个语法,G一定是这样一个简单的图ismultigraph (G)返回

例子

全部折叠

使用边表创建一个有向图,然后找到该图的等效邻接矩阵表示。邻接矩阵作为稀疏矩阵返回。

S = [1 1 1 2 2 3];T = [2 3 4 5 6 7];G =有向图(s,t)
G =有向图属性:边:[6x1表]节点:[7x0表]
A =邻接(G)
=(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]
一个=4×40 5 3 0 0 0 1 2 0 0 0 11 0 0 0 0 0
G =图(A,“上”
G =具有属性的图:边:[5x2表]节点:[4x0表]
G.Edges
ans =5×2表EndNodes Weight ________ ______ 1 2 5 1 3 3 2 3 1 2 4 2 3 4

使用邻接返回图的邻接矩阵。不管用什么形式的邻接矩阵来构造图,都可以邻接函数总是返回一个只包含1和0的对称稀疏邻接矩阵。

B =邻接(G)
B =(2, 1) 1(3,1) 1(1、2)1(2)1(4,2)1(1、3)1(2、3)1(4,3)1(2、4)1 (3,4)1

创建一个加权图。

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

求图的邻接矩阵。

A =邻接(G)
=(1、2)1(2)1(1、3)1(4,3)1(1、4)1(2、4)1

这种形式的邻接矩阵不包括边权值。使用“加权”选项,在邻接矩阵中包括边缘权重。

A =邻接(G,“加权”
=(1、2)5(2)9(1、3)6(4,3)10(1、4)7(2、4)8

预览矩阵的完整存储版本。自G是有向图,邻接矩阵不对称。然而,邻接矩阵对于无向图是对称的。

B =满(A)
B =4×40 5 6 7 0 0 0 8 0 9 0 0 0 0 10 0

输入参数

全部折叠

输入图形,指定为a有向图对象。使用创建无向图或有向图创建有向图。

例子:G =图(1,2)

例子:G =有向图([1 2],[2 3])

边权值,指定为向量。

例子:A =邻接(G,[1 2 3 4])

数据类型:|逻辑
复数支持:是的

输出参数

全部折叠

邻接矩阵,返回为稀疏矩阵。的大小一个numnodes (G)——- - - - - -numnodes (G)

提示

  • 方法返回的稀疏邻接矩阵中,权值为零的边是不可见的邻接.这意味着只有当没有权值为零的边时,加权邻接矩阵才能表示加权图。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

在R2015b中引入

Baidu
map