主要内容

interp1

一维数据插值(查表)

描述

例子

矢量量化= interp1 (x,v,xq)返回的一维插值函数在特定查询使用线性插值点。向量x包含样本点,v包含相应的值,v(x)。向量xq包含查询点的坐标。

如果你有多个数据集采样点坐标,然后你就可以通过v作为一个数组。每一列的数组v包含一组不同的一维样本值。

例子

矢量量化= interp1 (x,v,xq,方法)指定一个替代插值方法:“线性”,“最近的”,“下一个”,“以前”,“pchip”,“立方”,“v5cubic”,“makima”,或样条的。默认的方法是“线性”

例子

矢量量化= interp1 (x,v,xq,方法,外推法)指定的策略评估点之外的领域x。集外推法“extrap”当你想要使用方法推断算法。此外,您可以指定一个标量值,在这种情况下,interp1返回的值为所有点的领域之外x

例子

矢量量化= interp1 (v,xq)返回值插值和假定默认的组样本点的坐标。默认的点的序列数据1n,在那里n取决于的形状v:

  • 当v是一个矢量,默认的点1:长度(v)

  • 当v是一个数组,默认的点1:尺寸(v, 1)

当你不使用这个语法关心绝对点之间的距离。

矢量量化= interp1 (v,xq,方法)指定的任何替代插值方法和使用默认的采样点。

矢量量化= interp1 (v,xq,方法,外推法)指定一个推断策略和使用默认的采样点。

= interp1 (x,v,方法“页”)返回的分段多项式形式v(x)使用方法算法。

请注意

不推荐这种语法。使用griddedInterpolant代替。

例子

全部折叠

定义样本点,x和相应的样本值,v

x = 0:π/ 2 *π;v = sin (x);

定义查询点细抽样的范围x

xq = 0:π/ 16:2 *π;

插入查询的功能点和阴谋的结果。

图vq1 = interp1 (x, v, xq);情节(x, v,“o”xq vq1,“:”。);xlim([0 2 *π]);标题((默认)线性插值的);

图包含一个坐标轴对象。坐标轴对象与标题(默认)线性插值包含2线类型的对象。

现在评估v在同一点使用样条的方法。

图vq2 = interp1 (x, v, xq,样条的);情节(x, v,“o”xq vq2,“:”。);xlim([0 2 *π]);标题(样条插值的);

图包含一个坐标轴对象。坐标轴对象与标题样条插值包含2线类型的对象。

定义一组函数值。

v = [0 -1.41 -1.41 1.41 1.41 - 2 0 2 0];

定义一组查询点之间默认的点,书1:9。在这种情况下,默认的点书1:9因为v包含9值。

xq = 1.5:8.5;

评估vxq

vq = interp1 (v, xq);

策划的结果。

图绘制((1:9),v,“o”xq矢量量化,‘*’);传奇(“v”,矢量量化的);

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表v,矢量量化。

定义一组采样点。

x = 1:10;

定义函数的值, v ( x ) = 5 x + x 2 采样点。

v = (5 * x) + (x ^ 2 * 1);

定义查询点细抽样的范围x

xq = 1:0.25:10;

插入v在查询点。

vq = interp1 (x, v, xq);

阴谋的结果的实部红色和蓝色的虚部。

图绘制(x,真正的(v),“* r”xq,真实(vq),“- r”);持有情节(x,图像放大(v),‘* b”xq,图像放大(vq),“- b”);

图包含一个坐标轴对象。坐标轴对象包含4线类型的对象。

插入带时间戳的数据点。

考虑一个数据集包含每四小时测量温度读数。创建一个表,一天的数据和绘制数据。

x = (datetime(2016、1、1):小时(4):datetime(2016年1、2)';x。格式=“嗯dd, HH: mm”;T = 25 24 41 43 33 31 [31];WeatherData =表(x T“VariableNames”,{“时间”,“温度”})
WeatherData =7×2表时间温度_________________⒈1月1日00:00 31日1月1日1月25日(内01,喂饲24日1月1日12点41 1月1日16:00时43 1月1日20:00 33 1月2日00:00 31
情节(WeatherData。时间、WeatherData.Temperature“o”)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

插入的数据集来预测温度读数,在一天的每一分钟。因为数据是周期性的,使用样条的插值方法。

xq = (datetime(2016、1、1):分钟(1):datetime(2016年1、2)';V = interp1 (WeatherData。时间,WeatherData。温度,xq,样条的);

情节的插入点。

持有情节(xq, V,“r”)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。

定义样本点,x和相应的样本值,v

x = (1 2 3 4 5);v = (12 16 31 10 6);

指定查询点,xq超越的领域x

xq = (0 0.5 1.5 5.5 6);

评估vxq使用“pchip”方法。

vq1 = interp1 (x, v, xq,“pchip”)
vq1 =1×519.3684 13.6316 13.2105 7.4800 12.5600

接下来,评估vxq使用“线性”方法。

vq2 = interp1 (x, v, xq,“线性”)
vq2 =1×5南南14南南

现在,使用“线性”方法与“extrap”选择。

vq3 = interp1 (x, v, xq,“线性”,“extrap”)
vq3 =1×58 10 14 4 2

“pchip”假设默认情况下,但是“线性”没有。

定义样本点,x和相应的样本值,v

x = [3 2 1 0 1 2 3];v = 3 * x ^ 2;

指定查询点,xq超越的领域x

xq = (4 -2.5 -0.5 0.5 2.5 4);

现在评估vxq使用“pchip”方法和分配领域外的任何值x的价值,27

vq = interp1 (x, v, xq,“pchip”,27)
vq =1×627.0000 18.6562 0.9375 0.9375 18.6562 27.0000

定义样本点。

x = (5)”;

样品三个不同的抛物线函数中定义的点x

v1 = x ^ 2;v2 = 2 * x。^ 2 + 2;v3 = 3 * x。^ 2 + 4;

创建矩阵v的列向量,v1,v2,v3

v = (v1 v2 v3);

定义一组查询点,xq,成为一个更好的抽样的范围x

xq = 5:0.1:5;

评估这三个功能xq和策划的结果。

vq = interp1 (x, v, xq,“pchip”);图绘制(x, v,“o”xq, vq);甘氨胆酸h =;h。XTick = 5;

图包含一个坐标轴对象。坐标轴对象包含6行类型的对象。

情节的圆圈代表v,实线表示矢量量化

输入参数

全部折叠

采样点,指定行或列向量的实数。中的值x必须是不同的。的长度x必须符合下列条件之一:

  • 如果v是一个矢量,然后呢长度(x)必须等于长度(v)

  • 如果v是一个数组,然后呢长度(x)必须等于大小(v, 1)

例子:(1 2 3 4 5 6 7 8 9 10]

例子:1:10

例子:(3 7 11 15 19 23 27 31)”

数据类型:||持续时间|datetime

样本值,指定为一个向量,矩阵,或数组的复数。如果v是一个矩阵或数组,那么每一列包含一个单独的组一维的值。

如果v包含复数interp1实部和虚部分别插入。

例子:兰德(10)

例子:兰特(10,1)

例子:兰特(10,3)

数据类型:||持续时间|datetime
复数的支持:金宝app是的

查询点,指定为一个标量,矢量、矩阵,或数组的实数。

例子:5

例子:1:0.05:10

例子:(1:0.05:10)'

例子:[0 1 2 7.5 10]

数据类型:||持续时间|datetime

插值方法,指定为这个表的选项之一。

方法

描述

连续性

评论

“线性”

线性插值。插入的值查询点是基于线性插值相邻网格点的值在每个各自的维度。这是默认的插值方法。

C0

  • 至少需要2点

  • 比最近邻需要更多的内存和计算时间

“最近的”

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

不连续

  • 至少需要2点

  • 适度的内存需求

  • 最快的计算时间

“下一个”

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

不连续

  • 至少需要2点

  • 相同的内存需求和计算时间“最近的”

“以前”

以前的邻居插值。插入的值查询点是前面的示例网格点的值。

不连续

  • 至少需要2点

  • 相同的内存需求和计算时间“最近的”

“pchip”

一种保形分段立方插值。插入的值查询点是基于一种保形分段立方插值在相邻网格点的值。

C1

  • 至少需要4分

  • 需要更多的内存和计算时间“线性”

“立方”

立方卷积中使用MATLAB®5。

C1

  • 至少需要3个点

  • 点必须均匀间隔的

  • 这种方法回落样条的间隔不规则数据的插值

  • 类似的内存需求和计算时间“pchip”

“v5cubic”

一样“立方”

C1

“makima”

修改Akima立方埃尔米特插值。插入的值查询点是基于分段函数的多项式最多三个程度。Akima公式修改,避免过激的。

C1

  • 至少需要2点

  • 产生更少的波动比样条的,但没有平一样积极“pchip”

  • 计算更昂贵的比“pchip”,但通常小于样条的

  • 内存需求是相似的样条的

样条的

样条插值使用not-a-knot结束条件。插入的值查询点是基于立方插值的相邻网格点的值在每个各自的维度。

C2

  • 至少需要4分

  • 需要更多的内存和计算时间“pchip”

外推的策略,指定为“extrap”或一个真正的标量值。

  • 指定“extrap”当你想要interp1评估分域之外使用相同的方法它使用插值。

  • 当你想要指定一个标量值interp1返回一个特定的常量值点以外的领域。

默认的行为取决于输入参数:

  • 如果你指定“pchip”,样条的,或“makima”插值方法,那么默认的行为“extrap”

  • 所有其他插值方法返回默认情况下,查询点以外的领域。

例子:“extrap”

例子:5

数据类型:字符|字符串||

输出参数

全部折叠

插值数据,返回为一个标量,矢量,矩阵,或数组。的大小矢量量化取决于的形状vxq

v的形状 xq的形状 矢量的大小 例子
向量 向量 大小(xq) 如果大小(v) = (100)
大小(xq) = (500),
然后大小(vq) = (500)
向量 矩阵
或一天数组
大小(xq) 如果大小(v) = (100)
大小(xq) = 50 [30],
然后大小(vq) = 50 [30]
矩阵
或一天数组
向量 [长度(xq)大小(v, 2),…,大小(v, n)) 如果大小(v) = 100 [3]
大小(xq) = (500),
然后大小(vq) = 500 [3]
矩阵
或一天数组
矩阵
或一天数组
(尺寸(xq, 1),…,大小(xq, n),…大小(v, 2),…,大小(v, m)] 如果大小(v) = (4 5 6)
大小(xq) = (2 3 7),
然后大小(vq) = (2 3 5 6 7)

分段多项式,作为结构,您可以通过返回ppval功能进行评估。

更多关于

全部折叠

Akima和样条插值

Akima算法一维插值中描述[1][2]与连续生产,执行三次插值多项式分段一阶衍生品(C1)。该算法保留了斜率和避免在平坦地区起伏不定。平坦的地区发生当有三个或更多的连续共线点,该算法与一条直线。以确保该地区两个数据点之间是平的,这两个点之间插入一个额外的数据点。

当两个平面区域不同的斜坡上相遇时,修改了原Akima算法给出了更重的一边斜率接近零。这一修改为主到接近水平的一面,更直观,避免了过度。(原Akima算法给分两边相等的权重,从而均匀划分波动。)

样条算法,另一方面,执行三次插值生成分段多项式与连续的二阶导数(C2)。结果与常规多项式插值,但不太容易被沉重的数据点之间振荡度高。不过,这种方法可以容易的数据点之间的过冲和振荡。

样条算法相比,产生更少的起伏和Akima算法更适合应对快速变化之间的平坦区域。这种差异是使用测试数据所示,连接多个平面区域。

兼容性的考虑

全部展开

行为改变R2020b

引用

[1]Akima,藤原浩。“一个新的插值和平滑的曲线拟合的方法基于本地程序。”杂志的ACM (JACM),17.4,1970年,页589 - 602。

[2]Akima,藤原浩。“二元插值的方法和基于局部表面光滑拟合程序。”ACM的通信17.1,1974年,页18 - 20。

扩展功能

之前介绍过的R2006a