主要内容

图与矩阵

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

图是一组节点,它们之间具有指定的连接或边。图形有多种形状和大小。一个例子是Buckminster-Fuller测地穹顶的连通图,它也是足球或碳-60分子的形状。

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

[B,V]=bucky;G=图(B);p=绘图(G);轴平等的

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

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

p、 扩展数据=V(:,1);p、 YData=V(:,2);

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

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

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

例如,下面是一个简单的图及其关联的邻接矩阵。

%定义一个矩阵a。A=[0110;1 0 0 1 ; 1 0 0 1 ; 0 1 1 0];%绘制一张显示连接节点的图片。cla子批次(1,2,1);gplot(A,[01;1 1;0 0;1 0],'.-'); 文本([-0.2,1.2-0.2,1.2],[1.2,1.2,-.2,-.2,-.2,-.2]('1234')',...“水平对齐”,“中心”)轴([-12-12],“关”)%绘制一张显示邻接矩阵的图片。次要情节(1、2、2);xtemp = repmat(1:4, 1、4);ytemp =重塑(repmat(1:4 4 1), 16日1)';文本(xtemp闲置,ytemp闲置,char ('0'+A(:),“水平对齐”,“中心”);线([。25 0 0 .25 NaN 3.75 4 4 3.75],[0 0 4 4 NaN 0 0 4 4])轴紧的

稀疏矩阵对于表示非常大的图特别有用。这是因为每个节点通常只连接到少数其他节点。因此,对于大型图,邻接矩阵中非零项的密度通常相对较小。bucky-ball邻接矩阵是一个很好的例子,因为它是一个60乘60的对称稀疏矩阵,只有180个非零元素。这种基质的密度只有5%。

由于邻接矩阵定义了图,您可以使用邻接矩阵中条目的子集来绘制bucky球的一部分。

使用邻接函数为图形创建新的邻接矩阵。通过索引到邻接矩阵以创建新的较小图形,显示bucky球一个半球中的节点。

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

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

要可视化此半球的邻接矩阵,请使用间谍函数绘制邻接矩阵中非零元素的轮廓。

注意这个矩阵是对称的,因为如果节点i连接到节点j,那么节点j连接到节点i。

间谍(A(1:30,1:30))头衔(“巴基球邻接矩阵的左上角”)

图中包含一个轴。标题为Bucky Ball邻接矩阵左上角的轴包含类型为line的对象。

最后,这里是间谍整个bucky球邻接矩阵的绘图。

间谍(A)头衔(“巴基球邻接矩阵”)

图中包含一个轴。标题为Bucky Ball的轴邻接矩阵包含类型为line的对象。

另见

|