数模打卡--图的最短路径及距离

本文介绍了如何在MATLAB中处理图的最短路径问题,包括创建稀疏矩阵、有向图和无向图的最短路径计算,涉及`sparse`、`geaphallshortestpaths`、`dijkstra`和`shortestpath`等函数的使用。
摘要由CSDN通过智能技术生成

图的最短路径和距离

准备

1.创建稀疏矩阵

1.1什么是稀疏矩阵

在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。

矩阵稠密度:非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。

1.2 sparse函数
S = sparse(A)

将矩阵A转化为稀疏矩阵形式,即矩阵A中任何0元素被去除,非零元素及其下标组成矩阵S。如果A本身是稀疏的,sparse(S)返回S。

例子

有以下矩阵:A=[1,0,2;2,0,0;3,1,0]

S=sparse(A)

运行结果:
在这里插入图片描述
此时已经剔除全部0元素。

2.有向图的最短路径

下面是一个带权重的无向图:
在这里插入图片描述matlab代码:

%w(a,b)=权重
w=zeros(4);
w(1,2)=2;
w(2,1)=2;
w(1,3)=1;
w(3,1)=1;
w(2,4)=3;
w(4,2)=3;
w(3,4)=4;
w(4,3)=4;
s=sparse(w);

运行结果:
![![在这里插入图片描述](https://img-blog.csdnimg.cn/f7b87ae874c54efe8515e7c4f80f0ad6.png](https://img-blog.csdnimg.cn/5d23dd8a1f2040a195af97a04cf1e1d9.png

还可以用另外一种方法创建稀疏矩阵
G=sparse([起点集合],[对应终点集合],[权重值])

G=sparse([1,2,1,3,2,4,3,4],[2,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值