插值以匹配数据集大小

问题描述

例如,如果我有两个大小不同的数据集:

x1 = [0,2,5,10,12,20,15,14] #length = 8
y1 = [0,0.3,0.6,1.1,1.3,2.1,1.6,1.5] #length = 8

x2 = [0,4,13,18,14] #length = 11
y2 = [0.3,0.4,0.5,0.7,1.4,2.2,1.9,1.8] #length = 11

如何获取x1,y1数据以匹配x2,y2数据大小?因此它们的长度均为11。

我看过scipy.interpolate及其其他功能。但是我没有得到正确的数字,或者我使用了错误函数。如果有人知道正确的功能或其他解决方法,那就太好了。

因此,x1,y1的最终长度为11。

解决方法

我会使用interp1

https://uk.mathworks.com/help/matlab/ref/interp1.html

x1i = interp1(1:8,x1,linspace(1,8,11),'spline');

y1i = interp1(1:8,y1,linspace(1,11),'spline');