文件

图形和矩阵

该示例显示了稀疏矩阵的应用,并解释了图形和矩阵之间的关系。

图形是一组具有指定连接或边缘的节点。图表有许多形状和大小。一个例子是咖啡罐富勒测地圆顶的连接性图,其也是足球或碳-60分子的形状。

在Matlab®中,您可以使用buck函数生成测地圆顶的图表。

[B,V] = Bucky;g =图(b);p = plot(g);轴平等的

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

p.xdata = v(:,1);p.ydata = v(:,2);

buck功能可用于创建图形,因为它返回邻接矩阵。邻接矩阵是表示图中的节点和边的一种方式。

为了构造曲线图的邻接矩阵,节点编号为1至n。然后,如果节点i连接到节点j,则将n-by-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; 1 0],'.-');文字([ -  0.2,1.2-0.2,1.2],[1.2,1.2,-.2,2],('1234')'......'水平对齐''中央')轴([ -  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'+ 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%。

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

使用邻接为图形创建新的邻接矩阵的功能。通过索引进入邻接矩阵以创建新的较小的图形,显示抗皱球的一个半球中的节点。

图a =邻接(g);h =图(a(1:30,1:30));h = plot(h);

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

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

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

最后,这是一个间谍整个屈曲球邻接矩阵的图。

Spy(a)标题('屈曲球邻居矩阵'

也可以看看

|