主要内容

图表和矩阵

这个例子展示了稀疏矩阵的一个应用,并解释了图和矩阵之间的关系。

图是节点之间具有指定连接或边的集合。图表有多种形状和大小。其中一个例子是巴克敏斯特富勒圆顶的连通性图,它也是一个足球或碳60分子的形状。

在MATLAB®中,您可以使用巴基函数生成圆顶的图形。

[B、V] =巴基;图G = (B);p =情节(G);轴平等的

图中包含一个坐标轴。坐标轴包含一个graphplot类型的对象。

您还可以为节点指定坐标,以更改图形的显示。

p.XData = V (: 1);p.YData = V (:, 2);

图中包含一个坐标轴。坐标轴包含一个graphplot类型的对象。

巴基函数可用于创建图,因为它返回邻接矩阵。邻接矩阵是表示图中节点和边的一种方法。

为了构造图的邻接矩阵,节点编号为1到n。如果节点i连接到节点j,则n × n矩阵的每个元素(i,j)设为1,否则设为0。因此,对于无向图邻接矩阵是对称的,但对于有向图不一定是这样。

例如,这是一个简单的图和它的邻接矩阵。

定义一个矩阵a。A = [0 1 1 0;1 0 0 1;1 0 0 1;0 1 1 0];画一幅图显示连接的节点。cla次要情节(1、2、1);gplot(A,[0 1;1 1;0 0]),“。”);Text([-0.2, 1.2 -0.2, 1.2],[1.2, 1.2, -。2。2)(“1234”)”,...“HorizontalAlignment”“中心”)轴([-1 2 -1 2],“关闭”画出邻接矩阵的图。子图(1,2,2);XTEMP = REPMAT(1:4,1,4);YTEMP = REPAPE(REPMAT(1:4,4,1),16,1)';文本(XTEMP-.5,YTEMP-.5,CHAR(' 0 '+ (:)),“HorizontalAlignment”“中心”);线([。25 0 0.25 NaN 3.75 4 4 3.75],[0 0 4 4 NaN 0 0 4 4])轴

稀疏矩阵对于表示非常大的图特别有用。这是因为每个节点通常只与其他几个节点相连。因此,对于较大的图,邻接矩阵中非零项的密度通常相对较小。bucky球邻接矩阵就是一个很好的例子,因为它是一个60 × 60的对称稀疏矩阵,只有180个非零元素。这个矩阵的密度只有5%。

由于邻接矩阵定义了曲线图,因此可以通过使用邻接矩阵中的条目的子集来绘制抗皱球的一部分。

使用邻接函数创建图的新邻接矩阵。通过索引到邻接矩阵来创建一个新的、更小的图来显示bucky球的一个半球的节点。

图A =邻接(G);H =图((1:30,1:30));h =情节(h);

图中包含一个坐标轴。坐标轴包含一个graphplot类型的对象。

为了形象化这个半球的邻接矩阵,使用间谍函数绘制邻接矩阵中非零元素的轮廓。

注意,矩阵是对称的,因为如果节点I连接到节点j,则节点j连接到节点i。

间谍((1:30,1:30)标题(“耻骨邻接矩阵的左上角”

图中包含一个坐标轴。标题为“巴基球邻接矩阵左上角”的轴包含一个类型为line的对象。

最后,这是一个间谍绘制整个巴克球邻接矩阵。

间谍(A)标题(“巴克球邻接矩阵”

图中包含一个坐标轴。标题为巴克球邻接矩阵的轴包含一个类型为line的对象。

另请参阅

|