Matlab作无向图
(1)无权重(每条边的权重默认为1)
函数**graph(s,t)**:可在 s 和 t 中的对应节点之间创建边,并生成一个图 s 和 t 都必须具有相同的元素数;这些节点必须都是从1开始的正整数,或都是字符串元胞数组。 注意哦,编号最好是从1开始连续编号,不要自己随便定义编号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| s1 = [1,2,3,4]; t1 = [2,3,1,1]; G1 = graph(s1, t1); plot(G1)
set( gca, 'XTick', [], 'YTick', [] );
s2 = {'学校','电影院','网吧','酒店'}; t2 = {'电影院','酒店','酒店','KTV'}; G2 = graph(s2, t2); plot(G2, 'linewidth', 2)
set( gca, 'XTick', [], 'YTick', [] );
|


(2)有权重
函数**graph(s,t,w)**:可在 s 和 t 中的对应节点之间以w的权重创建边,并生成一个图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| s = [1,2,3,4]; t = [2,3,1,1]; w = [3,8,9,2]; G = graph(s, t, w);
plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) set( gca, 'XTick', [], 'YTick', [] );
a=[0 3 9 2; 3 0 8 0; 9 8 0 0; 2 0 0 0]; G = graph(a);
plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) set( gca, 'XTick', [], 'YTick', [] );
|

Matlab作有向图
无权图 digraph(s,t)
1 2 3 4 5
| s = [1,2,3,4,1]; t = [2,3,1,1,4]; G = digraph(s, t); plot(G) set( gca, 'XTick', [], 'YTick', [] );
|

有权图 digraph(s,t,w)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| s = [1,2,3,4]; t = [2,3,1,1]; w = [3,8,9,2]; G = digraph(s, t, w); plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) set( gca, 'XTick', [], 'YTick', [] );
a=[0 3 0 0; 0 0 8 0; 9 0 0 0; 2 0 0 0]; G = digraph(a);
plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) set( gca, 'XTick', [], 'YTick', [] );
|
