利用graphshortestpath 可以求最短路径,具体用法参考MATLAB帮助

S=[1 1 2 2 3 3 4 4 4 4 5 6 6 7 8]; %起始节点向量

E=[2 3 5 4 4 6 5 7 8 6 7 8 9 9 9]; %终止节点向量

W=[1 2 12 6 3 4 4 15 7 2 7 7 15 3 10]; %边权值向量,有向图,G(9,9)=0; 9个节点

G=sparse(S,E,W); %关联矩阵的稀疏矩阵表示

G(9,9)=0;

P=biograph(G,[],'ShowWeights','on');%建立有向图对象P

H=view(P);%显示各个路径权值

[Dist,Path]=graphshortestpath(G,1,9,'Method','Dijkstra') %求节点1到节点9的最短路径

set(H.Nodes(Path),'Color',[1 0.4 0.4]);%以下三条语句用红色修饰最短路径

edges=getedgesbynodeid(H,get(H.Nodes(Path),'ID'));

set(edges,'LineColor',[1 0 0]);

set(edges,'LineWidth',2.0);

以下是运行结果,节点1到节点9的最短路径为19

Dist =

19

Path =

1 3 4 5 7 9

利用graphallshortestpaths可以求出所有最短路径

Dists=graphallshortestpaths(G) %求所有最短路径

Dists =

0 1 2 5 9 6 16 12 19

Inf 0 Inf 6 10 8 17 13 20

Inf Inf 0 3 7 4 14 10 17

Inf Inf Inf 0 4 2 11 7 14

Inf Inf Inf Inf 0 Inf 7 Inf 10

Inf Inf Inf Inf Inf 0 Inf 7 15

Inf Inf Inf Inf Inf Inf 0 Inf 3

Inf Inf Inf Inf Inf Inf Inf 0 10

Inf Inf Inf Inf Inf Inf Inf Inf 0

注意一点的是创建稀疏矩阵的时候,如果原始是m*3的矩阵a,分别表示起点、终点和权值,有n个点,用sparse(a),创建的还是m*3,这样根本不对,因为矩阵值是第三列,这样的话矩阵值包括了下标。应该是sparse(a(:,1),a(:,2),a(:,3)),这样的话是max(第一列)*max(第二列)的矩阵,然后设置spraseGraph(n,n)=0,这样的话sparseGraph才是方阵,采用调用系统的最短路径函数。

clc

clear all

a = [6 1 1

6 4 1

6 5 1

1 2 1

2 3 1

2 4 1

3 5 1

4 5 1];

res = [];

graph = sparse(a(:,1),a(:,2),a(:,3));

graph(6,6) = 0;

P=biograph(graph,[],'ShowWeights','on');%建立有向图对象P

H=view(P);%显示各个路径权值

matlab求最短路径问题,Matlab最短路径问题记录相关推荐

  1. matlab求最短路,Matlab最短路学习

    文章目录 1.无向图最短路引例 2.有向图最短路引例 3.单源最短路函数graphshortestpath 1)对函数graphshortestpath进行解释 2)对于find函数解释 3)对于sp ...

  2. matlab求微分方程精确解,matlab求微分方程精确解及近似解.ppt

    matlab求微分方程精确解及近似解.ppt 还剩 24页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 求微分方程的解q 自牛顿发明微积分以来,微分方 ...

  3. 运用数学软件matlab求无穷积分,matlab积分的计算及其简单应用论文.doc

    积分的计算及其简单应用 摘要:本文简要的概述了MATLAB 在高等数学中积分的计算及应用:利用MATLAB 中符号积分和数值积分的命令,计算定积分和不定积分.同时,也可以通过这些命令来解决一些实际问题 ...

  4. matlab 求曲面体积,matlab求两曲面之间的体积

    MATLAB求曲面相交所成空间曲线的图形 放在你程序后也可,单独运行也行:t=-0.1:0.1:2*pi;x=2*cos(t);%交线参数方程z=2*sin(t);y1=sqrt(5)*ones(si ...

  5. matlab 求留数,用matlab求留数

    <用matlab求留数>由会员分享,可在线阅读,更多相关<用matlab求留数(3页珍藏版)>请在金锄头文库上搜索. 1.收稿日期: 2006) 05- 29作者简介: 贾新民 ...

  6. matlab求表达式绝对值,matlab绝对值怎么表示

    Matlab 的内部常数 Matlab 的常用内部数学函数 指数函数 exp(x) log(x) 对数函数 log10(x) log2(x) 开方函数 sqrt(x) 绝对值函数 abs(x) sin ...

  7. matlab求方程实根,matlab怎么求方程的根

    MATLAB解方程_IT/计算机_专业资料.一般的代数方程函数solve用于求解一般代数方程的根,假定S为符 号表达式,命令solve (S)求解表达式等于0的根,也 可以再输入一个...... MA ...

  8. 用matlab求累次极限,Matlab笔记——数值计算—高数篇015

    15. 数值计算-高数篇 一.求极限 limit(f,x,a)--求极限lim ()x a f x → limit(f,x,a,'right')--求右极限lim ()x a f x +→ limit ...

  9. 试用matlab求e值,matlab中如何求e精确到20位

    MATLAB语言基础 第一节 使用MATLAB的窗口环境 一.MATLAB语言的显著特点 1.具有强大的矩阵运算能力:Matrix Laboratory(矩阵实验室),使得矩阵运算非常简单. 2.是一 ...

  10. 用matlab求残余误差,matlab在测量误差分析中的应用

    matlab在测量误差分析中的应用 MATLAB在测量误差分析中的应用 在技术测量中,按照误差的特点与性质,误差可分为:系统误差,粗大误差和随机误差.在假定不含有系统误差的情况下,可借助MATLAB对 ...

最新文章

  1. R语言ggplot2可视化指定图像标题(title)、副标题(subtitle)的内容、字体大小、字体类型、色彩、对齐方式等实战
  2. 基于JavaWeb实现就业管理系统
  3. 网上的说TB6560存在的问题
  4. python计算消费总额_【数据分析案例】用户消费行为
  5. Java内存之栈与堆
  6. 限时免费报名丨网易新消费CXO论坛 - 深圳站
  7. MSP430F5529 DriverLib 库函数学习笔记(十二)I2C实战
  8. 【Pytorch】谈谈我在PyTorch踩过的12坑
  9. 推荐《Office SharePoint Server 2007案例实战开发》
  10. pythonxy官网下载_spyder安装包
  11. 计算机密码突然不正确,win10开机密码明明正确,win10密码突然不对了
  12. MPU6050姿态解算——Mahony互补滤波
  13. Beta版是什么意思
  14. 约束布局ConstraintLayout ,报错:This view is not constrained vertically
  15. 【HenCoder】HTTPS 为什么是安全的
  16. dell更换硬盘识别不了新的硬盘
  17. 下载安装webpack
  18. [BZOJ3609][Heoi2014]人人尽说江南好 结论题
  19. Django模型层-多表操作
  20. 软件测试中重点测什么,在软件测试中,测试员到底扮演着一个什么样的角色?...

热门文章

  1. ul li 的属性值 去掉li的圆点
  2. android访客模式,访客模式:我的隐私我做主_小米 红米Note(增强版/移动3G/2GB RAM)_手机Android频道-中关村在线...
  3. 强荐 | 渗透测试报告自动生成工具
  4. 自制抗皱果蔬面膜方法
  5. 优酷无线路由器怎么设置连接服务器,192.168.11.1
  6. STM32SPI协议通信详解
  7. Fetch上传文件(不需要设置headers)
  8. win10 22H2值得更新吗?!
  9. 《幸运转盘小游戏》【初学者】
  10. Mac卸载软件 CleanMyMac最好选择