从 Matlab 的文档interp1
看来,插值和外插的方法应该是一样的。但是,我想用剪辑外推(保持极值)实现线性插值。这可以使用该interp1
功能吗?
问问题
6886 次
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 回答