【MATLAB第40期】源码分享 | MATLAB实现根据经纬度坐标查找两点之间的距离(Haversine、 Pythagoran定理)

简介: 【MATLAB第40期】源码分享 | MATLAB实现根据经纬度坐标查找两点之间的距离(Haversine、 Pythagoran定理)

【MATLAB第40期】源码分享 | MATLAB实现根据经纬度坐标查找两点之间的距离(Haversine、 Pythagoran定理)


一、参数介绍


%——输入:

%latlon1:原点的经纬度

%latlon2:目的地的经纬度

%–输出:

d1km:基于Haversine公式的距离,单位为km

d2km:基于Pythagoran公式的距离,单位为km


二、代码实现


1.案例一(短距离计算)


clear all
   latlon1=[-43 172];
  latlon2=[-44  171];
 [d1km d2km]=distance(latlon1,latlon2)
 %   d1km =
%           137.365669065197 (km)
%   d2km =
%           137.368179013869 (km)

2.案例二(长距离计算)


clear all
  latlon1=[-43 172];
 latlon2=[20  -108];
[d1km d2km]=distance(latlon1,latlon2)
%   d1km =
%           10734.8931427602 (km)
%   d2km =
%           31303.4535270825 (km)
function [d1km,d2km]=distance(latlon1,latlon2)
radius=6371;
lat1=latlon1(1)*pi/180;
lat2=latlon2(1)*pi/180;
lon1=latlon1(2)*pi/180;
lon2=latlon2(2)*pi/180;
deltaLat=lat2-lat1;
deltaLon=lon2-lon1;
a=sin((deltaLat)/2)^2 + cos(lat1)*cos(lat2) * sin(deltaLon/2)^2;
c=2*atan2(sqrt(a),sqrt(1-a));
d1km=radius*c;    %Haversine distance
x=deltaLon*cos((lat1+lat2)/2);
y=deltaLat;
d2km=radius*sqrt(x*x + y*y); %Pythagoran distance
end
相关文章
【MATLAB第11期】#源码分享 |时间序列数据绘图,横坐标更改为时间轴 横坐标轴参数更改 日期间隔设置 日期标签或格式更改
【MATLAB第11期】#源码分享 |时间序列数据绘图,横坐标更改为时间轴 横坐标轴参数更改 日期间隔设置 日期标签或格式更改
|
10月前
|
机器学习/深度学习 异构计算
【MATLAB第55期】#源码分享| 基于MATLAB的LSTM长短期记忆网络的一列数据时间序列预测模型
创建LSTM回归网络。将LSTM层指定为具有128个隐藏单元。训练参数可查看帮助,明白其中含义。% 定义网络结构% 定义训练参数。
【MATLAB第18期】#源码分享 | 基于MATLAB的一维数字信号的FFT及频谱分析
【MATLAB第18期】#源码分享 | 基于MATLAB的一维数字信号的FFT及频谱分析
|
10月前
|
机器学习/深度学习 数据可视化 数据库
【MATLAB第5期】源码分享#基于小波时间散射网络(WTSN)和长短期记忆网络 (LSTM) 的ECG信号分类模型,含源代码+中文注释,保姆级教学
【MATLAB第5期】源码分享#基于小波时间散射网络(WTSN)和长短期记忆网络 (LSTM) 的ECG信号分类模型,含源代码+中文注释,保姆级教学
【MATLAB第60期】源码分享 | 基于MATLAB的ARMAX具有外生回归因子的移动平均自回归模型
ARMAX模型相比ARMA考虑了影响因素 ,即可以实现基于时间序列数据的回归预测。目前,ARMAX预测未来功能存在困难,本篇文章不予介绍。大致思路需要通过时间滞后构造数据,使前时间段的X预测后时间段的Y,即多步预测。此示例展示如何将时间序列中的时间划分为预采样期T0、训练期Ty和预测期Tf,并显示了如何提供适当数量的观测值来初始化用于估计和预测的动态模型。通过定义ARMA模型中的参数,可实现ARIMAX和SARIMAX模型。本文介绍最基础的ARMAX模型。
【MATLAB第60期】源码分享 | 基于MATLAB的ARMAX具有外生回归因子的移动平均自回归模型
|
10月前
基于MATLAB的低通信号抽样定理
基于MATLAB的低通信号抽样定理
136 0
|
10月前
|
机器学习/深度学习 算法
【MATLAB第56期】#源码分享 | 基于MATLAB的机器学习算法单输入多输出分类预测模型思路(回归改分类)
因上一步骤进行了正常的回归预测,输出一般为小数点,且不是限定标签的数值。所以需要通过find函数,将回归预测的输出结果进行分段赋值。若涉及多隐含层,可修改[20,20,5]中的数字。前2个20代表两层隐含层的神经元数 ,后面的5为输出节点,根据本案例数据设置。输出分为五个指标,每个指标共4个评分维度,即【0 10 20 30】归一化区间可自行设置,默认[-1,1],本文采用[0,1]根据四舍五入的思路,如数据如果在5以下,则赋值为0,数据为1输入,5输出,总共482个样本。如果为[5,15),赋值为10…
【MATLAB第56期】#源码分享 | 基于MATLAB的机器学习算法单输入多输出分类预测模型思路(回归改分类)
【MATLAB第41期】源码分享 | 基于MATLAB的二次及三次指数平滑及其时间序列预测代码
【MATLAB第41期】源码分享 | 基于MATLAB的二次及三次指数平滑及其时间序列预测代码
【MATLAB第33期】源码分享 | 基于MATLAB的时间序列平稳性检测方法
【MATLAB第33期】源码分享 | 基于MATLAB的时间序列平稳性检测方法
|
10月前
|
机器学习/深度学习
【MATLAB第27期】源码分享 | 基于MATLAB的生成对抗网络GAN回归预测模型
【MATLAB第27期】源码分享 | 基于MATLAB的生成对抗网络GAN回归预测模型

热门文章

最新文章