matlab求最短路径问题,Matlab最短路径问题记录
利用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最短路径问题记录相关推荐
- matlab求最短路,Matlab最短路学习
文章目录 1.无向图最短路引例 2.有向图最短路引例 3.单源最短路函数graphshortestpath 1)对函数graphshortestpath进行解释 2)对于find函数解释 3)对于sp ...
- matlab求微分方程精确解,matlab求微分方程精确解及近似解.ppt
matlab求微分方程精确解及近似解.ppt 还剩 24页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 求微分方程的解q 自牛顿发明微积分以来,微分方 ...
- 运用数学软件matlab求无穷积分,matlab积分的计算及其简单应用论文.doc
积分的计算及其简单应用 摘要:本文简要的概述了MATLAB 在高等数学中积分的计算及应用:利用MATLAB 中符号积分和数值积分的命令,计算定积分和不定积分.同时,也可以通过这些命令来解决一些实际问题 ...
- matlab 求曲面体积,matlab求两曲面之间的体积
MATLAB求曲面相交所成空间曲线的图形 放在你程序后也可,单独运行也行:t=-0.1:0.1:2*pi;x=2*cos(t);%交线参数方程z=2*sin(t);y1=sqrt(5)*ones(si ...
- matlab 求留数,用matlab求留数
<用matlab求留数>由会员分享,可在线阅读,更多相关<用matlab求留数(3页珍藏版)>请在金锄头文库上搜索. 1.收稿日期: 2006) 05- 29作者简介: 贾新民 ...
- matlab求表达式绝对值,matlab绝对值怎么表示
Matlab 的内部常数 Matlab 的常用内部数学函数 指数函数 exp(x) log(x) 对数函数 log10(x) log2(x) 开方函数 sqrt(x) 绝对值函数 abs(x) sin ...
- matlab求方程实根,matlab怎么求方程的根
MATLAB解方程_IT/计算机_专业资料.一般的代数方程函数solve用于求解一般代数方程的根,假定S为符 号表达式,命令solve (S)求解表达式等于0的根,也 可以再输入一个...... MA ...
- 用matlab求累次极限,Matlab笔记——数值计算—高数篇015
15. 数值计算-高数篇 一.求极限 limit(f,x,a)--求极限lim ()x a f x → limit(f,x,a,'right')--求右极限lim ()x a f x +→ limit ...
- 试用matlab求e值,matlab中如何求e精确到20位
MATLAB语言基础 第一节 使用MATLAB的窗口环境 一.MATLAB语言的显著特点 1.具有强大的矩阵运算能力:Matrix Laboratory(矩阵实验室),使得矩阵运算非常简单. 2.是一 ...
- 用matlab求残余误差,matlab在测量误差分析中的应用
matlab在测量误差分析中的应用 MATLAB在测量误差分析中的应用 在技术测量中,按照误差的特点与性质,误差可分为:系统误差,粗大误差和随机误差.在假定不含有系统误差的情况下,可借助MATLAB对 ...
最新文章
- R语言ggplot2可视化指定图像标题(title)、副标题(subtitle)的内容、字体大小、字体类型、色彩、对齐方式等实战
- 基于JavaWeb实现就业管理系统
- 网上的说TB6560存在的问题
- python计算消费总额_【数据分析案例】用户消费行为
- Java内存之栈与堆
- 限时免费报名丨网易新消费CXO论坛 - 深圳站
- MSP430F5529 DriverLib 库函数学习笔记(十二)I2C实战
- 【Pytorch】谈谈我在PyTorch踩过的12坑
- 推荐《Office SharePoint Server 2007案例实战开发》
- pythonxy官网下载_spyder安装包
- 计算机密码突然不正确,win10开机密码明明正确,win10密码突然不对了
- MPU6050姿态解算——Mahony互补滤波
- Beta版是什么意思
- 约束布局ConstraintLayout ,报错:This view is not constrained vertically
- 【HenCoder】HTTPS 为什么是安全的
- dell更换硬盘识别不了新的硬盘
- 下载安装webpack
- [BZOJ3609][Heoi2014]人人尽说江南好 结论题
- Django模型层-多表操作
- 软件测试中重点测什么,在软件测试中,测试员到底扮演着一个什么样的角色?...
热门文章
- ul li 的属性值 去掉li的圆点
- android访客模式,访客模式:我的隐私我做主_小米 红米Note(增强版/移动3G/2GB RAM)_手机Android频道-中关村在线...
- 强荐 | 渗透测试报告自动生成工具
- 自制抗皱果蔬面膜方法
- 优酷无线路由器怎么设置连接服务器,192.168.11.1
- STM32SPI协议通信详解
- Fetch上传文件(不需要设置headers)
- win10 22H2值得更新吗?!
- 《幸运转盘小游戏》【初学者】
- Mac卸载软件 CleanMyMac最好选择