利用Matlab进行数据重采样

利用Matlab进行数据重采样

1、需求

现有有一组里程和海拔数据,如下图Excel,总里程2271km,但是里程数据不是均匀等分。

数据导入其他软件计算或者对比分析时,要求数据基准一样,因此需对数据重采样。

2、思路

1)设定按照100m均匀等分的连续区间;

2)应用spline函数,根据连续区间对原始数据进行拟合;

3)按照等分区间保存数据。


3、matalb代码如下

clc;clear;

Si = xlsread('Route 北京-广州 Altitude 2271.52 km.xlsx');%读取excel数据,同目录下

dis_S=Si(:,1);  %第1列为里程数据,单位m
ALt_S=Si(:,2);  %第1列为海拔数据,单位m

xx_S=0:100:2271520;  %参考里程数据设定连续区间,按照100m等分
yy_S=spline(dis_S,ALt_S,xx_S);  %根据设定的连续区间对数据进行拟合转换成连续数据
Alt=[xx_S;yy_S]; %设置新数据矩阵,按照等分区间保存数据
Re=Alt';  %新数据矩阵转置为列数据

plot(dis_S,ALt_S,xx_S,yy_S,'o');
title('海拔——里程');
alpha('0.5');
xlabel('里程(m)');
ylabel('海拔(m)');
legend('原始数据','重采样数据');

结果如下:

发布于 2020-07-19 11:41