输入矩阵:
% 输入原始矩阵信息(无向图)
a = zeros(11)
a(1,2)=2;a(1,3)=8;a(1,4)=1;
a(2,3)=6;a(2,5)=1;
a(3,4)=7;a(3,5)=5;a(3,6)=1;a(3,7)=2;
a(4,7)=9;
a(5,6)=3;a(5,8)=2;a(5,9)=9;
a(6,7)=4;a(6,9)=6;
a(7,9)=3;a(7,10)=1;
a(8,9)=7;a(8,11)=9;
a(9,10)=1;a(9,11)=2;
a(10,11)=4;
% 转化为下三角矩阵
a = a';
% 构造稀疏矩阵
G = sparse(a)
% 将稀疏矩阵转化为普通矩阵
b = full(G)
% 画出稀疏矩阵表示的图
IDs = {
}; % IDs 即为每个结点的名称
bg=biograph(G,IDs,'showWeights','on','ShowArrows','off','NodeAutoSize','off');
set(bg,'layoutType','radial','arrowSize',6,'edgeFontSize',9);
set(bg.nodes,'shape','circle','color',[1,1,1],'lineColor',[0,0,0],'textColor',[0,0,0],'lineWidth',2,...
'fontsize',8,'size',[20,20]);
view(bg);
求解函数为:
[dist] = graphallshortestpaths(G, ‘Directed’, DirectedValue)
函数解释:(1). 返回值dist即为用二维数组表示的任意顶点对之间的最短距离。
(2). 参数 G 为稀疏图, DirectedValue指定此图是否为有向图。
求解函数为:
[dist,path,pred] = graphshortestpath(G,SNode,TNode,‘Directed’, DirectedValue)
函数解释:(1). 返回值 dist 即为指定顶点间的最短距离,path 即为最短路径。
(2). 参数 G 为稀疏图,SNode为源点,TNode为目标点, DirectedValue指定此图是否为有向图。
求解函数为:
fval = graphisdag(G)
函数解释:(1). 若含有环则返回true,否则返回false。
(2). 参数 G 为稀疏图。
求解函数为:
[S, C] = graphconncomp(G, ‘Directed’, DirectedValue, ‘Weak’, WeakValue)
函数解释:(1). 返回值 S 表示找到的极大连通分支的数量。C 是一个向量,表示每个结点属于哪个极大连通分支,从1开始。
(2). 参数 G 为稀疏图, DirectedValue 指定此图是否为有向图,WeakValue 指定是否寻找极大弱连通分支。
求解函数为:
[Isomorphic, Map] = graphisomorphism(G1, G2,‘Directed’, DirectedValue)
函数解释:(1). 返回值 Isomorphic 表示两个图是否同构
(2). 参数 G1 G2 为稀疏图,DirectedValue 指定此图是否为有向图。
求解函数为:
TF = graphisspantree(G)
函数解释:(1). 返回值 TF 表示此图是否为生成树。
(2). 参数 G 为稀疏图。
求解函数为:
[Tree, pred] = graphminspantree(G)
[Tree, pred] = graphminspantree(G, R)
函数解释:(1). 返回值 Tree 即为稀疏矩阵表示的最小生成树
(2). 参数 G 为稀疏图,R 为指定的根节点,默认为极大连通分支的第一个结点。
求解函数为:
[MaxFlow, FlowMatrix, Cut] = graphmaxflow(G, SNode, TNode)
函数解释:(1). 返回值 MaxFlow 为有向图的最大流。
(2). 参数 G 为稀疏图,SNode为源点,TNode为目标点。
求解函数为:
order = graphtopoorder(G)
函数解释:(1). 返回值 order 即为用结点序号表示的拓扑排序。
(2). 参数 G 为稀疏图。