interp1
一维数据插值(查表)
语法
描述
例子
粗采样正弦函数的插值
定义样本点,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 *π]);标题((默认)线性插值的);
现在评估v
在同一点使用样条的
方法。
图vq2 = interp1 (x, v, xq,样条的);情节(x, v,“o”xq vq2,“:”。);xlim([0 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;
评估v
在xq
。
vq = interp1 (v, xq);
策划的结果。
图绘制((1:9),v,“o”xq矢量量化,‘*’);传奇(“v”,矢量量化的);
复杂的值的插值
定义一组采样点。
x = 1:10;
定义函数的值, 采样点。
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”);
插值的日期和时间
插入带时间戳的数据点。
考虑一个数据集包含每四小时测量温度读数。创建一个表,一天的数据和绘制数据。
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”)
使用两种不同的方法外推
定义样本点,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);
评估v
在xq
使用“pchip”
方法。
vq1 = interp1 (x, v, xq,“pchip”)
vq1 =1×519.3684 13.6316 13.2105 7.4800 12.5600
接下来,评估v
在xq
使用“线性”
方法。
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的域以外的所有查询
定义样本点,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);
现在评估v
在xq
使用“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;
情节的圆圈代表v
,实线表示矢量量化
。
输入参数
x
- - - - - -采样点
向量
采样点,指定行或列向量的实数。中的值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
是一个矩阵或数组,那么每一列包含一个单独的组一维的值。
如果v
包含复数interp1
实部和虚部分别插入。
例子:兰德(10)
例子:兰特(10,1)
例子:兰特(10,3)
数据类型:单
|双
|持续时间
|datetime
复数的支持:金宝app是的
xq
- - - - - -查询点
标量|向量|矩阵|数组
查询点,指定为一个标量,矢量、矩阵,或数组的实数。
例子:5
例子:1:0.05:10
例子:(1:0.05:10)'
例子:[0 1 2 7.5 10]
数据类型:单
|双
|持续时间
|datetime
方法
- - - - - -插值法
“线性”
(默认)|“最近的”
|“下一个”
|“以前”
|“pchip”
|“立方”
|“v5cubic”
|“makima”
|样条的
插值方法,指定为这个表的选项之一。
方法 |
描述 |
连续性 |
评论 |
---|---|---|---|
|
线性插值。插入的值查询点是基于线性插值相邻网格点的值在每个各自的维度。这是默认的插值方法。 |
C0 |
|
|
最近邻插值。插入的值查询点是在最近的样本网格点的值。 |
不连续 |
|
|
下一个邻居插值。插入的值查询点是在下一个采样网格点的值。 |
不连续 |
|
|
以前的邻居插值。插入的值查询点是前面的示例网格点的值。 |
不连续 |
|
|
一种保形分段立方插值。插入的值查询点是基于一种保形分段立方插值在相邻网格点的值。 |
C1 |
|
|
立方卷积中使用MATLAB®5。 |
C1 |
|
|
一样 |
C1 |
|
|
修改Akima立方埃尔米特插值。插入的值查询点是基于分段函数的多项式最多三个程度。Akima公式修改,避免过激的。 |
C1 |
|
|
样条插值使用not-a-knot结束条件。插入的值查询点是基于立方插值的相邻网格点的值在每个各自的维度。 |
C2 |
|
外推法
- - - - - -外推的策略
“extrap”
|标量值
外推的策略,指定为“extrap”
或一个真正的标量值。
指定
“extrap”
当你想要interp1
评估分域之外使用相同的方法它使用插值。当你想要指定一个标量值
interp1
返回一个特定的常量值点以外的领域。
默认的行为取决于输入参数:
如果你指定
“pchip”
,样条的
,或“makima”
插值方法,那么默认的行为“extrap”
。所有其他插值方法返回
南
默认情况下,查询点以外的领域。
例子:“extrap”
例子:5
数据类型:字符
|字符串
|单
|双
输出参数
矢量量化
——插入值
标量| | |向量矩阵数组
插值数据,返回为一个标量,矢量,矩阵,或数组。的大小矢量量化
取决于的形状v
和xq
。
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算法更适合应对快速变化之间的平坦区域。这种差异是使用测试数据所示,连接多个平面区域。
兼容性的考虑
“立方”
的方法interp1
执行立方卷积
行为改变R2020b
在R2020b,“立方”
插值的方法interp1
执行立方卷积。的“v5cubic”
和“立方”
现在执行相同类型的插值插值方法,它的行为是一致的interp2
,interp3
,interpn
。立方卷积插值方法用于uniformly-spaced数据,落回样条的
为间隔不规则数据插值。
在以前的版本中,“立方”
是一样的“pchip”
,只有“v5cubic”
立方卷积来完成。
引用
[1]Akima,藤原浩。“一个新的插值和平滑的曲线拟合的方法基于本地程序。”杂志的ACM (JACM),17.4,1970年,页589 - 602。
[2]Akima,藤原浩。“二元插值的方法和基于局部表面光滑拟合程序。”ACM的通信17.1,1974年,页18 - 20。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
代码生成不支持金宝app
“立方”
或“makima”
插值方法。输入参数
x
(采样点)必须严格严格增加或减少。索引不是重新排序。如果输入参数
v
(样本值)是一个向量(1 -变长:
或:
1),然后输出的形状矢量量化
比赛在MATLAB的形状。如果输入参数
v
适应,不是一个变长向量,然后变成一个行向量在运行时,出现错误。如果输入参数
xq
(查询点)是适应,不是一个变长向量,并成为一个行或列向量在运行时,出现错误。看到适应限制工具箱函数的代码生成(MATLAB编码器)。
GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
使用笔记和限制:
代码生成不支持金宝app
“立方”
或“makima”
插值方法。输入参数
x
(采样点)必须严格严格增加或减少。索引不是重新排序。如果输入参数
v
(样本值)是一个向量(1 -变长:
或:
1),然后输出的形状矢量量化
比赛在MATLAB的形状。如果输入参数
v
适应,不是一个变长向量,然后变成一个行向量在运行时,出现错误。如果输入参数
xq
(查询点)是适应,不是一个变长向量,并成为一个行或列向量在运行时,出现错误。看到适应限制工具箱函数的代码生成(MATLAB编码器)。
线程环境
在后台运行代码使用MATLAB®backgroundPool
与并行计算工具箱™或加速代码ThreadPool
。
这个函数完全支持线程的环境。金宝app有关更多信息,请参见MATLAB函数线程环境中运行。
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
分布式阵列
分区大数组在内存使用并行计算集群的工具箱相结合™。
这个函数完全支持分布式阵列。金宝app有关更多信息,请参见运行MATLAB函数与分布式阵列(并行计算工具箱)。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。