如何使用Matlab的interp1进行线性插值和剪辑外推

时间:2016-02-15 10:24:02

标签: matlab interpolation linear-interpolation extrapolation

从Matlab的interp1文档来看,用于插值和外推的方法似乎应该是相同的。但是,我想用剪辑外推法实现线性插值(保持极值)。这是否可以使用interp1函数?

1 个答案:

答案 0 :(得分:1)

看起来您无法直接从interp1功能

执行此操作
  

外推策略,指定为字符串,' extrap'或真实   标量值。

     
      
  • 指定' extrap'当你想让interp1评估以外的点   域使用与插值相同的方法。
  •   
  • 如果希望interp1返回特定的常量值,请指定标量值   对于域外的点。
  •   

但我想自己实施起来并不太难:

function vq = LinearInterpWithClipExtrap(x,v,xq)

    vq = interp1(x,v,xq);

    [XMax, idxVMax] = max(x);
    [XMin, idxVMin] = min(x);

    idxMax = xq > XMax;
    idxMin = xq < XMin;

    vq(idxMax) = v(idxVMax);
    vq(idxMin) = v(idxVMin);

end