分段插值 1 维
我们将使用以下数据:
x = 1:5:50;
y = randi([-10 10],1,10);
http://i.stack.imgur.com/yNZaj.jpg
因此 x
和 y
是数据点的坐标,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 和之前的插值分段常数插值。