这个示例由两个文件构成:
railwayMap.m以Matlab类的方式管理各地铁线路站点,和计算最短路径
railwayMap_test.m以广州地铁为示例,演示使用方法
% filename: railwayMap_test.m
各线路站点
构建线路图
rail=railwayMap;rail.Init();
添加线路
rail.AddLine(line_1);rail.AddLine(line_2);rail.AddLine(line_3);rail.AddLine(line_3_2);rail.AddLine(line_4);rail.AddLine(line_5);rail.AddLine(line_6);rail.AddLine(line_7);rail.AddLine(line_8);rail.AddLine(line_9);
计算最短路径
rail.CalShortestPath('西朗','车陂南');rail.CalShortestPath('中大','黄花岗');
******西朗 到 车陂南*****西朗 坑口 花地湾 芳村 黄沙 长寿路 陈家祠 西门口 公园前 农讲所 烈士陵园 东山口 杨箕
体育西路 珠江新城 猎德 潭村 员村 科韵路 车陂南
******中大 到 黄花岗*****中大 鹭江 客村 广州塔 珠江新城 体育西路 杨箕 动物园 区庄 黄花岗
在文件 railwayMap.m ,有用到以下几个函数:
strsplit: 字符串分割函数,将线路字符串分割成各个站点
sparse: 稀疏矩阵构造函数,将各站点的连击关系以稀疏矩阵表示
graphshortestpath: 最短路径求解函数,求解站点到站点见的最短换乘路线
join: 字符串合并函数,与strsplit相反,将换乘路线站点合并显示
领取专属 10元无门槛券
私享最新 技术干货