📅  最后修改于: 2021-01-07 03:10:40             🧑  作者: Mango
插值是描述在指定(数据)点之间“连接点”的函数的过程。最常见的插值技术是线性插值。
更奇特的插值方案是使用三次或三次多项式链接数据点。
在MATLAB中,我们可以使用样条线或Hermite插值快速插值数据。
MATLAB提供以下功能来帮助插值:
让我们一一理解MATLAB的这些功能:
一维数据插值。
鉴于ÿ我在X I,发现在从y中J = F(XJ)XĴÿĴ。 f是从插值中看到的连续函数。之所以称为一维插值,是因为y取决于单个变量x。
句法
ynew = interp1(x,y,xnew,method)
其中,方法是在描述interp2和interp3之后讨论的可选参数。
二维数据插值。
给定Z I的(x I,Y i)中,发现在从ž期望的(XĴ,Y j)的ŽJ = F(X,Y)。该函数f是从内插找到。之所以称为二维插值,是因为z取决于两个变量x和y。
句法
znew = interp2(x,y,z,xnew,ynew,method)。
interp1的三维类似物。
给定v i at(x i ,y i ,z i ),找到v j处期望值(x j ,y j ,z j )。
句法
vnew = interp3(x,y,z,xnew,ynew,znew,方法)
此外,如果需要,还有一个n维模拟物interpn 。在每个函数,我们可以选择指定插值方法。该技术的选择是最近,线性,三次或样条曲线。方法的选择决定了插值数据的平滑度。默认方法是线性的。
例如,要在interp1中指定三次插值而不是线性插值,请使用以下语法:
ynew = interp1(x,y,xnew,'cubic')。
一维插值,使用三次样条来找到在期望的XĴÿĴ,给出ÿ我在X I。三次样条通过匹配给定数据点处每个段的斜率和曲率来拟合连续数据点之间的单独三次多项式。
句法
ynew = spline(x,y,xnew,method)。
基于快速傅里叶变换(FFT)的一维数据插值。这与interp1相似,不同之处在于首先通过对给定数据进行傅立叶变换对数据进行插值,然后使用更多数据点计算逆变换。内插对于周期性函数(即y的值是周期性的)特别有用。
句法
y = interpft(X,n)
y="interpft(X,n,dim)
插值包含两个简单的步骤:提供要获取插值数据的点的列表(向量),并以所需的插值方法选择执行适当的函数(例如interp1)。我们通过下表中的x和y数据示例说明了这些步骤:
x | 0 0.785 1.570 2.356 3.141 3.927 4.712 5.497 6.283 |
y | 0 0.707 1.000 0.707 0.000 -0.707 – 1.000 -0.707 -0.000 |
步骤1:生成一个向量x i,其中包含用于插值的期望点。
%得到等距的50分。
x i = linspace(0,2 * pi,50);
第二步:Y我在X I生成的数据。
%生成ÿ我在X I与三次插值。
y i = interp1(x,y,x i ,'cubic');
在这里,“三次”是插值方案的选择。我们可以使用的其他方案是最近的,线性的和样条曲线。图中显示了每种方案生成的数据以及原始输入。
>