About MATLAB interp1 de 那些事

interp1( )是最常用的插值函数。

一、基本表达式

vq = interp1(x,v,xq)
vq = interp1(x,v,xq,method)
vq = interp1(x,v,xq,method,extrapolation)

(注:上面显示的是最基本最常用的基本表达式,更多可见MATLAB官方文档。)

      其中,x和v是已知样本点,作为插值的基础矩阵,两者必须一一对应;xq是要查询的点,通过插x和v组成的一维表格来得到vq;method为插值方法;extrapolation为外插设置。

二、Method

插值方法说明连续性备注
'linear'线性插值。查询点处的插值基于每个相应维度中相邻网格点处的值的线性插值。这是默认的插值方法。C0

*至少两个点;

*比'nearest'需要更多的内存和计算时间

'nearest'最近邻插值。查询点处的插值是最近的采样网格点处的值。Discontinuous

*至少两个点;

*中等内存要求;

*最快的计算时间

'next'下一个邻居插值。查询点处的插值是下一个采样网格点处的值。Discontinuous同'nearest'
'previous'上一个邻居插值。查询点处的插值是上一个采样栅格点处的值。Discontinuous同'nearest'
'pchip'保形分段三次插值。查询点处的插值基于相邻网格点处值的保形分段三次插值。C1

*至少4个点;

*内存和计算时间与'linear'相同

'cubic'同'pchip'C1同'pchip'
'v5cubic'MATLAB®5中使用的三次卷积。C1点的间距必须均匀。”cubic将在未来版本中取代v5cubic
'makima'改进的Akima三次Hermite插值。查询点处的插值基于次数最多为3的多项式的分段函数。修改了Akima公式以避免过冲。C1

*至少两个点;

*产生的波动小于'spline'大于'pchip'

'spline'使用not-a-knot结束条件的样条曲线插值。查询点处的插值基于每个相应维度中相邻网格点处的值的三次插值。C2

*至少4个点;

*要求比'pchip'更多的内存空间和计算时间

三、内插和外插

内插:插值点位于(x,v)的内部;

外插:插值点落于(x,v)的外部。

外插注意第一点:

  • If you specify the 'pchip''spline', or 'makima' interpolation methods, then the default behavior is 'extrap'.

  • All other interpolation methods return NaN by default for query points outside the domain.

外插注意第二点:

  • 如果希望interp1使用插值时使用的相同方法计算域外的点,在“extrapolation”处输入“extrap”。
  • 如果希望interp1为域外的点返回特定的常量值,需要给定此标量值。

附:

         1、interp1( ) 在x和xq相同但v不同的情况下,可以一次性对多个一维表格进行插值,详情可见MATLAB官方文档。

        2、要避免错的离谱的x或者v,如果错的离谱,那样子对插值会造成影响,还是要保证插值的基础点是正确滴。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值