数学建模社区-数学中国

标题: Matlab的图论工具箱 2——最短路径 [打印本页]

作者: 森之张卫东    时间: 2015-8-11 16:38
标题: Matlab的图论工具箱 2——最短路径
  1. <p>%用 Matlab工具箱求解图4.7 中从 1 到 11 的最短路径及长度;
  2. %时间:2015-6-20
  3. clc, clear
  4. a(1,2)=2;a(1,3)=8;a(1,4)=1;
  5. a(2,3)=1;a(2,3)=6;a(2,5)=1;
  6. a(3,4)=7;a(3,5)=5;a(3,6)=1;a(3,7)=2;
  7. a(4,7)=9;
  8. a(5,6)=3;a(5,8)=2;a(5,9)=9;
  9. a(6,7)=4;a(6,9)=6;
  10. a(7,9)=3;a(7,10)=1;
  11. a(8,9)=7;a(8,11)=9;
  12. a(9,10)=1;a(9,11)=2;
  13. a(10,11)=4;
  14. a=a';   %matlab工具箱要求数据是下三角矩阵
  15. [i,j,v]=find(a);
  16. b=sparse(i,j,v,11,11) %构造稀疏矩阵
  17. % Directed是标志图为有向或无向的属性,该图是无向图,对应的属性值为false,或0。
  18. [dist,path,pred]=graphshortestpath(b,1,11,'Directed',false)
  19. %--------------------------------------------------------------------------
  20. %将路程可视化!
  21. h=view( biograph( b,[],'ShowArrows','off','ShowWeight','on' ) );

  22. set( h.Nodes(path),'Color',[1 0.4 0.4] )
  23. fowEdges=getedgesbynodeid( h, get( h.Nodes(path),'ID' ) );
  24. revEdges=getedgesbynodeid( h, get( h.Nodes(fliplr(path)),'ID' ) );
  25. edges=[fowEdges;revEdges];
  26. set(edges,'LineColor',[1 0 0])
  27. set(edges,'LineWidth',1.5)

  28. %-------------------------------------------------------------------------





  29. </p>
复制代码

效果图.PNG (23.58 KB, 下载次数: 192)

效果图.PNG


作者: 森之张卫东    时间: 2015-8-11 16:40
问题如图:

新建文件夹20150811_162053.jpg (2 MB, 下载次数: 194)

新建文件夹20150811_162053.jpg






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5