1

从 Matlab 的文档interp1看来,插值和外插的方法应该是一样的。但是,我想用剪辑外推(保持极值)实现线性插值。这可以使用该interp1功能吗?

4

1 回答 1

1

看起来你不能直接从interp1函数中做到这一点:

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

  • 当您希望 interp1 使用与插值相同的方法评估域外的点时,请指定 'extrap'。
  • 当您希望 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
于 2016-02-15T10:31:56.990 回答