本文介绍一维插值函数interp1的用法。
vq = interp1(x,v,xq,method); 使用线性插值返回一维函数在特定查询点的插入值。向量 x 包含样本点,v 包含对应值 v(x)。向量 xq 包含查询点的坐标。method为插值方法,默认为‘linear’;常用的有‘nearest’,临近点插值;‘linear’,线性插值法;‘spline’,三次样条插值;
应用说明:如下图所示,假设知道某一天内下面时刻的温度,求7时,9时,11时,13时,15时的温度。(此图 来源于网络)
程序代码:
t=[6 8 10 12 14 16]; %样本时间点
C=[26 28 30 32 33 31]; %样本时间点对应的温度
T=[7 9 11 13 15]; %插值节点,即需求时间
C1=interp1(t,C,T,'nearest'); %最近点插值
C2=interp1(t,C,T,'linear'); %线性插值
C3=interp1(t,C,T,'spline'); %三次样条插值
plot(T,C1,'b*-',T,C2,'g*-',T,C3,'r*-','linewidth',2);
xlabel('时间(T)');ylabel('温度(\circC)');
set(gca,'FontSize',15); %设置坐标轴标注字体大小
legend('最近点插值','线性插值','三次样条插值');
运行结果:
可以看出不同插值方法的结果有明显差别。
如果样本点是多个变量,还可使用interp2,interp3函数进行多为插值,方法类似。
%%%本文由作者原创,如有错误,欢迎指正,谢谢。