Matlab实现网络拓补图

顶点号  顶点号      权值
1        2        400
1        3        450
2        4        300
2        8        230
2        9        140
3        4        600
4        5        210
4        19        310
5        6        230
5        7        200
6        7        320
6        8        340
7        8        170
7        18        160
8        9        200
8        15        285
9        10        180
10        11        150
10        15        160
11        12        140
11        14        130
12        13        200
13        14        400
14        15        190
14        16        190
15        16        170
15        17        250
16        17        140
16        18        130
17        20        240
18        19        204
19        20        140

  ...............

S=NODE(:,1)';
E=NODE(:,2)';
W=NODE(:,3)';
R=sparse(S,E,W);  %关联矩阵的稀疏矩阵表示
R(20,20)=0;
P=biograph(R,[],'ShowWeights','on'); %建立有向图对象P
H=view(P); %显示各个路径权值
[Dist,Path]=graphshortestpath(R,1,20) %求节点1到节点20的最短路径
set(H.Nodes(Path),'Color',[1 0.4 0.4]);%以下三条语句用红色修饰最短路径
edges=getedgesbynodeid(H,get(H.Nodes(Path),'ID'));
set(edges,'LineColor',[1 0 0]);

  

原文地址:https://www.cnblogs.com/hxsyl/p/4835405.html