matlab插值函数

Posted Jeossirey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab插值函数相关的知识,希望对你有一定的参考价值。

 插值

x=0:2*pi;
y=sin(x);
xx=0:0.5:2*pi;

%interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值
y1=interp1(x,y,xx);
figure
plot(x,y,'o',xx,y1,'r')
title('分段线性插值')

%临近插值
y2=interp1(x,y,xx,'nearest');
figure
plot(x,y,'o',xx,y2,'r');
title('临近插值')

%球面线性插值
y3=interp1(x,y,xx,'spline');
figure
plot(x,y,'o',xx,y3,'r')
title('球面插值')

%三次多项式插值法
y4=interp1(x,y,xx,'cubic');
figure
plot(x,y,'o',xx,y4,'r');
title('三次多项式插值')

方法

说明

连续性

注释

'linear'

线性插值。在查询点插入的值基于各维中邻点网格点处数值的线性插值。这是默认插值方法。

C0

 

  • 需要至少 2 个点。

  • 比最近邻点插值需要更多内存和计算时间。

 

'nearest'

最近邻点插值。在查询点插入的值是距样本网格点最近的值。

不连续

 

  • 需要至少 2 个点。

  • 最低内存要求

  • 最快计算时间

 

'next'

下一个邻点插值。在查询点插入的值是下一个抽样网格点的值。

不连续

 

  • 需要至少 2 个点。

  • 内存要求和计算时间与 'nearest' 相同

 

'previous'

上一个邻点插值。在查询点插入的值是上一个抽样网格点的值。

不连续

 

  • 需要至少 2 个点。

  • 内存要求和计算时间与 'nearest' 相同

 

'pchip'

保形分段三次插值。在查询点插入的值基于邻点网格点处数值的保形分段三次插值。

C1

 

  • 需要至少 4 个点。

  • 比 'linear' 需要更多内存和计算时间

 

'cubic'

用于 MATLAB® 5 的三次卷积。

C1

 

  • 需要至少 3 个点。

  • 点必须均匀间隔

  • 对于不规则间隔的数据,此方法会回退到 'spline' 插值

  • 内存要求和计算时间与 'pchip' 相似

 

'v5cubic'

与 'cubic' 相同。

C1

'makima'

修正 Akima 三次 Hermite 插值。在查询点插入的值基于次数最大为 3 的多项式的分段函数。为防过冲,已修正 Akima 公式。

C1

 

  • 需要至少 2 个点。

  • 产生的波动比 'spline' 小,但不像 'pchip' 那样急剧变平

  • 计算成本高于 'pchip',但通常低于 'spline'

  • 内存要求与 'spline' 类似

 

'spline'

使用非结终止条件的样条插值。在查询点插入的值基于各维中邻点网格点处数值的三次插值。

C2

 

  • 需要至少 4 个点。

  • 比 'pchip' 需要更多内存和计算时间

以上是关于matlab插值函数的主要内容,如果未能解决你的问题,请参考以下文章

Matlab使用带结构参数的函数进行插值

Matlab中插值函数怎么用

matlab 各种插值方法的比较

paper 79:MATLAB函数,interp1

matlab插值函数

多项式函数插值:全域多项式插值单项式基插值拉格朗日插值牛顿插值 [MATLAB]