分段插值 1 维

我们将使用以下数据:

x = 1:5:50;
y = randi([-10 10],1,10);

http://i.stack.imgur.com/yNZaj.jpg

因此 xy 是数据点的坐标,z 是我们需要信息的点。

z = 0:0.25:50;

找到 z 的 y 值的一种方法是分段线性插值。

z_y = interp1(x,y,z,'linear');

http://i.stack.imgur.com/EM68o.jpg

因此,计算两个相邻点之间的线,并通过假设该点将是这些线的元素来获得 z_y

interp1 提供其他选项,就像最近插值一样,

z_y = interp1(x,y,z, 'nearest');

http://i.stack.imgur.com/YMwU4.jpg

下一次插值,

z_y = interp1(x,y,z, 'next');

http://i.stack.imgur.com/l4lvh.jpg

先前插值,

z_y = interp1(x,y,z, 'previous');

http://i.stack.imgur.com/V9B3j.jpg

保持形状的分段三次插值,

z_y = interp1(x,y,z, 'pchip');

http://i.stack.imgur.com/3tEJ3.jpg

三次卷积,z_y = interp1(x,y,z,‘v5cubic’);

http://i.stack.imgur.com/5RQi5.jpg

和样条插值

z_y = interp1(x,y,z, 'spline');

http://i.stack.imgur.com/MQtBM.jpg

因此是 nearst,next 和之前的插值分段常数插值。