在 Matlab 中使用插值创建新值

Create new values using Interpolation in Matlab

我有一个向量 x=[7 8 8 8...] 和相应的向量 y=[13 14 15 16...] ,这给了我一些分数,如下图所示

现在 我想在给定 points.I 的每对 之间创建两个(或通常为 N 个)新点,我认为这应该使用插值来完成,但我有找不到我可以在这种情况下使用的东西。

结果应该是这样的:

x= [ 7 7.4 7.7 8 8 8 8...] ,

y=[ 13 13.3 13.8 14 14.2 14.5 15...]

使用interp你可以增加你的数据

a=1:10;
b=interp(a,3);
b=b(1:end-2);

我删除了最后 2 个点,因为它们超出了范围,但如果它们适合您,您可以使用它们。

要使用的函数是interp1,在本例中,例如:

N=3;
x=[7 8 8 9];
y=[7 10 15 17];
originalSpacing=1:length(x);
finalSpacing=1:1/N:4; 

xx=interp1(originalSpacing,x,finalSpacing);
yy=interp1(originalSpacing,y,finalSpacing);

将产生新的插值序列 xx 和 yy

xx = [7 7.3333 7.6667 8 8 8 8 8.3333 8.6667 9]

yy = [7 8 9 10 11.6667 13.3333 15 15.6667 16.3333 17]