分段插值 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 和之前的插值分段常數插值。