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