matlab中怎么使用图与矩阵

这个例子展示了稀疏矩阵的一个应用 , 并解释了图和矩阵之间的关系 。 图是具有指定连接的节点集 。 一个例子是巴克敏斯特-富勒测地线穹顶(也是一个足球或碳-60分子)的连通图 。 在MATLAB?中 , 测地线圆顶的图形可以用BUCKY函数生成 。
需要这些哦
matlab软件
电脑
方式/
1号令行窗口键入:
% Define the variables.
[B,V] = bucky;
H = sparse(60,60);
k = 31:60;
H(k,k) = B(k,k);


% Visualize the variables.
gplot(B-H,V,'b-');
hold on
gplot(H,V,'r-');
hold off
axis off equal

2按”Enter“键 。
如图1所示 。

matlab中怎么使用图与矩阵

文章插图

3一个图可以用它的邻接矩阵来暗示 。
为了机关邻接矩阵 , 将节点编号为1到N 。
若是节点i毗连到节点j , 则将矩阵的元素(i , j)设置为1 , 不然设置为0 。

号令行窗口键入:
% Define a matrix A.
A = [0 1 1 0 ; 1 0 0 1 ; 1 0 0 1 ; 0 1 1 0];


% Draw a picture showing the connected nodes.
cla
subplot(1,2,1);
gplot(A,[0 1;1 1;0 0;1 0],'.-');
text([-0.2, 1.2 -0.2, 1.2],[1.2, 1.2, -.2, -.2],('1234')', ...
   'HorizontalAlignment','center')
axis([-1 2 -1 2],'off')


% Draw a picture showing the adjacency matrix.
subplot(1,2,2);
xtemp = repmat(1:4,1,4);
ytemp = reshape(repmat(1:4,4,1),16,1)';
text(xtemp-.5,ytemp-.5,char('0'+A(:)),'HorizontalAlignment','center');
line([.25 0 0 .25 NaN 3.75 4 4 3.75],[0 0 4 4 NaN 0 0 4 4])
axis off tight

4按”Enter“键 。
如图2所示 。
matlab中怎么使用图与矩阵

文章插图

5这里的节点在一个半球的巴克球 , 编号多边形的多边形 。
号令行窗口键入:
subplot(1,1,1);
gplot(B(1:30,1:30),V(1:30,:),'b-');
for j = 1:30,
   text(V(j,1),V(j,2),int2str(j),'FontSize',10);

axis off equal

6按”Enter“键 。
如图3所示 。
matlab中怎么使用图与矩阵

文章插图

7为了可视化这个半球的邻接矩阵 , 我们利用SPY函数来绘制非零元素的轮廓 。
注重 , 矩阵是对称的 , 因为若是节点i毗连到节点j , 那么节点j毗连到节点i 。

号令行窗口键入:
spy(B(1:30,1:30))
title('spy(B(1:30,1:30))')

8按”Enter“键 。
如图4所示 。
matlab中怎么使用图与矩阵

文章插图

9此刻我们经由过程将一个半球的编号映射到另一个半球 , 将我们的编号方案扩展到整个图形 。
号令行键入:
[B,V] = bucky;
H = sparse(60,60);
k = 31:60;
H(k,k) = B(k,k);
gplot(B-H,V,'b-');
hold on
gplot(H,V,'r-');
for j = 31:60
   text(V(j,1),V(j,2),int2str(j), ...
      'FontSize',10,'HorizontalAlignment','center');

hold off
axis off equal

10按”Enter“键 。
如图5所示 。

推荐阅读