使用MATLAB对地铁站、公交站等求解最短路径

使用MATLAB对城市的地铁站、公交站等站点,根据站点的经纬度坐标和彼此之间的权重,求解其最短路径、途径站点和路程

  1. 已知的数据如图,是西安市地铁站点的数据,保存在一个Excel里
    在这里插入图片描述
    如图,每列的内容都在上面,不过往MATLAB中导入数据时,不需要第一行的文字内容,MATLAB不能读取汉字,直接把所有汉字都删除,记住每一列数字的意义就行。

2.MATLAB代码很简单,主要是进行Excel中的处理。
西安市站点一共有117个,本次数据一共有1219条,所以数据中的站点需要转换成数字进行替代。所有的站点用1~117的数字进行代替,相同的站点要用相同的数字代替。

3.在Excel中新建一个sheet,把A列站点粘到A1位置,然后把B列终点站点也复制,粘到新建的sheet A列下面,在本组数据中,就是粘到A1220位置往下。
粘贴完成后,在新建sheet A列中,数据一共有1219*2=2438个数据。
主要是因为上图中的A列或B列并没有完全包含117个站点,只用一列数据去重复会存在少点的问题。
使用上述相同的粘贴方法,把C列起点经度和D列终点纬度,粘到新建sheet的B列和C列,然后把上图中E列终点经度和F列终点纬度,粘到新建sheetB列和C列的1220格,续上粘贴。

先这么粘到一个新sheet中
再这么向下续着粘贴,记得粘完了把所有的中文都删除,MATLAB不能运行中文

4.然后在新建sheet中,选中A列全部站名,点击 “数据”——“删除重复值”
在这里插入图片描述

选择拓展选定区域,会自动把重复的地铁站名删除,连带着重复的地铁经纬度坐标也会留下唯一的。
这个时候注意检查,地铁站数量是不是117个,同时对应着117个经纬度坐标。

5.这会儿是117个地铁站名和对应的经纬度坐标。
使用Excel的排序功能,对地铁站进行字母排序,顺便带着经纬度也会调整。
这一步不是必须,但是排序后会更明了
在这里插入图片描述

6.把排序后的117个地铁站复制,在原始数据的sheet中,左边新增3列空白。如图所示,117个地铁站复制到A列,B列用自然数赋值,1 2 3这样拖到117,对应每一个地铁站。然后C列用VLOOKUP命令,如图所示,这样就给每一个地铁站名赋了一个数字,就是对应的1~117的数字。
=VLOOKUP(A2, $A 2 : 2: 2:B$117, 2, FALSE)
截图中因为有第一行的文字,所以是118,本身公式应该是117
这就是命令,等于赋值了
注意这里面是D列
注意这里面是E列
把这个vlookup的命令拖满整列,就可以看到整个起点终点都对应成了数字。

7.把现在站名变成数字的数据表导入到MATLAB中,导入时候需要选择向量形式,然后每组数据导入后的命名如下:
在这里插入图片描述
在这里插入图片描述
8.回到步骤5中,站点按照首字母顺序排列的那个sheet,这时候的站点按照首字母顺序进行排列,对应着经纬度坐标。
把这两列经纬度坐标也导入MATLAB,分别命名为x和y
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后所有导入的数据如图所示

9.代码运算比较简单,直接按照MATLAB帮助文档中,“根据节点坐标寻找最短路径”的代码进行计算得到。
具体网址:https://ww2.mathworks.cn/help/matlab/ref/graph.shortestpath.html;jsessionid=b2088ade3cc29383eb196d1e336d?s_tid=srchtitle#mw_ecf88b43-d1b1-4cac-b526-e8a40dbe533d
在这里插入图片描述

clc
clear all
close allload("matlab.mat")G = graph(S,T);    
%直接按照MATLAB帮助文档中的“根据节点坐标寻找最短路径”的代码进行计算得到
figure
plot(G,'XData',x,'YData',y)
hold on
scatter(x,y,"red","filled");     %画出起点,散点,红色,实心for i=1:117                                    %这里面是因为地铁站数量只有117个,需要根据站点数量进行调整这个数字for j=1:117                                %这里面是因为地铁站数量只有117个,需要根据站点数量进行调整这个数字[path,len] = shortestpath(G,i,j);           %%直接按照MATLAB帮助文档中的“根据节点坐标寻找最短路径”的代码allPaths{i, j} = path; % 存储路径           %所有地铁站之间两两的途径站点allLens(i, j) = len; % 存储长度             %所有地铁站之间两两的路程长度end
end

代码非常简单,前半段是画图,后半段是把117个车站两两之间的路径和路程长度。

在这里插入图片描述
生成的图如上所示
在这里插入图片描述
在这里插入图片描述
allpaths和alllens可以看到都是矩阵,可以得到每两个车站间的最短路径和对应的路程长度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/348459.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go singlefight 源码详解|图解

写在前面 通俗的来说就是 singleflight 将相同的并发请求合并成一个请求,进而减少对下层服务的压力,通常用于解决缓存击穿的问题。 详解 基础结构 golang.org/x/sync/singleflight singleflight结构体: type call struct {wg sync.WaitGro…

Tabby:一款革新的Mac/Win现代化终端模拟器

在信息技术日新月异的今天,终端操作已成为众多开发者、系统管理员和技术爱好者的日常必备工具。然而,传统的终端模拟器往往功能单一、界面陈旧,无法满足用户对于高效、便捷操作体验的追求。Tabby应运而生,作为一款现代化、功能强大…

基于多传感器数据和周期性采样的滚动轴承故障诊断方法(Python)

代码较为简单,算法结构如下: from scipy.io import loadmat import numpy as np import os from sklearn import preprocessing # 0-1编码 import torch from torch.utils import data as da# 用训练集标准差标准化训练集以及测试集 def scalar_stand(d…

【Android面试八股文】1. 你说一说Handler机制吧 2. 你知道Handler的同步屏障吗? 3. Looper一直在循环,会造成阻塞吗?为什么?

文章目录 一. 你说一说Handler机制吧二、你知道Handler的同步屏障吗?2.1 Handler消息的分类2.2 什么是同步屏障2.3 为什么要设计同步屏障2.4 同步屏障的用法 三、Looper一直在循环,会造成阻塞吗?为什么?扩展阅读 一. 你说一说Hand…

现货黄金交易多少克一手?国内外情况大不同

如果大家想参与国际市场上的现货黄金交易,就应该从它交易细则的入手,先彻底认识这个品种,因为它是来自欧美市场的投资方式,所以无论是从合约的计的单位,计价的货币,交易的具体时间,以及买卖过程…

AI大模型在健康睡眠监测中的深度融合与实践案例

文章目录 1. 应用方案2. 技术实现2.1 数据采集与预处理2.2 构建与训练模型2.3 个性化建议生成 3. 优化策略4. 应用示例:多模态数据融合与实时监测4.1 数据采集4.2 实时监测与反馈 5. 深入分析模型选择和优化5.1 LSTM模型的优势和优化策略5.2 CNN模型的优势和优化策略…

【安装笔记-20240612-Linux-内网穿透服务之cpolar极点云】

安装笔记-系列文章目录 安装笔记-20240612-Linux-内网穿透服务之 cpolar 极点云 文章目录 安装笔记-系列文章目录安装笔记-20240612-Linux-内网穿透服务之 cpolar 极点云 前言一、软件介绍名称:cpolar极点云主页官方介绍 二、安装步骤测试版本:openwrt-…

0601 模拟集成电路中的直流偏置技术

模拟集成电路中的直流偏置技术 6.1.1 BJT 电流源6.1.2 FET电流源6.1.3电流源做作有源负载![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c5381fff64bd48a1b28ba9bee179b18f.png) 6.1.1 BJT 电流源 6.1.2 FET电流源 6.1.3电流源做作有源负载

tmega128单片机控制的智能小车设计

第1章 绪论1.1 选题背景和意义 自第一台工业机器人诞生以来,机器人的民展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人工作的机器一…

2.线性神经网络

目录 1.线性回归一个简化模型线性模型:可以看做是单层神经网络衡量预估质量训练数据参数学习显示解总结 2.基础优化方法小批量随机梯度下降总结 3.Softmax回归:其实是一个分类问题回归VS分类从回归到多类分类---均方损失Softmax和交叉熵损失 4.损失函数L…

阿里云香港服务器怎么样?

大家都知道阿里云是国内最受欢迎的云服务商,那么阿里云香港服务器究竟怎么样呢?和硅云的香港服务器用于做外贸网站等业务相比各有哪些优缺点呢? 阿里云和硅云在香港云服务领域有着广泛的应用和良好的口碑。然而,它们各自的特点和…

借助大语言模型快速学习金仓数据库 KES

基础概念 KES 人大金仓数据库管理系统 KingbaseES(KES) 是由 北京人大金仓信息技术股份有限公司 (以下简称“人大金仓”)自主研发的面向全行业、全客户关键应用的企业级大型通用数据库管理系统。产品融合了人大金仓在数据库领域几十年的产品研发和企业级…

SQL中distinct去重关键字的使用和count统计组合的使用

文章目录 SQL中distinct的使用1、distinct作用于单列2、distinct作用于多列3、 count()、distinct组合使用conut扩展知识 SQL中distinct的使用 1、distinct作用于单列 语法: select distinct 列名 from 表; distinct必须在列的前面,否则直…

Unity HoloLens2 MRTK 空间锚点 基础教程

Unity HoloLens2 MRTK 空间锚点 基础教程 Unity HoloLens2 空间锚点MRTK 空间锚点 准备Unity 工程创建设置切换 UWP 平台UWP 平台设置 下载并安装混合现实功能工具导入混合现实工具包和 OpenXR 包 Unity 编辑器 UWP 设置Unity 2019.4.40 设置Unity 2022.3.0 设置Unity 2022.3.0…

嵌入式仪器模块:音频综测仪和自动化测试软件

• 24 位分辨率 • 192 KHz 采样率 • 支持多种模拟/数字音频信号的输入/输出 应用场景 • 音频信号分析:幅值、频率、占空比、THD、THDN 等指标 • 模拟音频测试:耳机、麦克风、扬声器测试,串扰测试 • 数字音频测试:平板电…

天锐绿盾 | 无感知加密软件、透明加密系统、数据防泄漏软件

摘要:文件加密软件,包含禁止非授权的文件泄密和抄袭复制解决方案即使被复制泄密都是自动加密无法阅读,透明加密,反复制软件,内网监控,文件加密,网络安全方案,透明文件加密,加密文件,图纸加密,知识产权保护,加密数据; 通过绿盾信息安全管理软件,系统在不改…

项目五串行通信系统 任务5-3温度信息上传

任务描述:DS18B20测量温度,单片机采集温度数据转换显示代码,并通过串行口发送到上位机显示。 底层文件: /********************************************* ds18b20底层函数:能完成一次温度数据读取 ***************************…

docker 拉取不到镜像的问题:拉取超时

error pulling image configuration: download failed after attempts6: dial tcp 31.13.94.10:443: i/o timeout 首先设置国内的镜像源&#xff1a;复制下面直接执行 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF{"registry-mirrors"…

NSS题目练习9

[极客大挑战 2020]welcome 界面打开后一片空白&#xff0c;查看题目描述&#xff0c;翻译过来是 1.除了GET请求方法&#xff0c;还有一种常见的请求方法… 2.学习一些关于sha1和array的知识。 3.更仔细地检查phpinfo&#xff0c;你会发现标志在哪里。 补充&#xff1a; sh…

MicroPython 环境下使用 ESP32 连接百度 AI 大模型

前言 在物联网领域&#xff0c;ESP32 由于其丰富的功能和低功耗性能成为了一种流行的选择。结合 MicroPython&#xff0c;它为开发者提供了一个高效的开发环量&#xff0c;让 Python 程序员也能轻松介入到嵌入式系统和 IoT 应用的开发之中。本文将介绍如何利用这些技术&#x…