interp1
一维数据插值(查表)
语法
Vq = interp1(x,v,xq)
Vq = interp1(x,v,xq,方法)
Vq = interp1(x,v,xq,方法,外推)
Vq = interp1(v,xq)
Vq = interp1(v,xq,方法)
Vq = interp1(v,xq,方法,外推)
Pp = interp1(x,v,方法,' Pp ')
描述
例子
粗采样正弦函数的插值
定义样本点,x
,和对应的样本值,v
。
X = 0:pi/4:2*pi;V = sin(x);
将查询点定义为范围内的更细抽样x
。
Xq = 0:pi/16:2*pi;
在查询点插入函数并绘制结果。
图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 2 1.41 0 -1.41 -2 -1.41 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*1i);
将查询点定义为范围内的更细抽样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.Format =“MMM dd, HH:mm”;T = [31 25 24 41 43 33 31]';天气数据=表(x,T,“VariableNames”, {“时间”,“温度”})
WeatherData =7×2表时间温度_____________ ___________ 1月1日,1月31日00:00,1月25日04:00,1月24日08:00,1月01日12:00,1月41日16:00 43日,1月02日20:00 33日,00:00 31
情节(WeatherData。时间,WeatherData。温度,“o”)
插值数据集来预测一天中每分钟的温度读数。由于数据是周期性的,所以使用样条的
插值方法。
Xq = (datetime(2016,1,1):minutes(1):datetime(2016,1,2))';V = interp1(天气数据。时间,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 =19.3684 13.6316 13.2105 7.4800 12.5600
接下来,评估v
在xq
使用“线性”
方法。
Vq2 = interp1(x,v,xq,“线性”)
vq2 =南南14南南
现在,使用“线性”
方法。“extrap”
选择。
Vq3 = interp1(x,v,xq,“线性”,“extrap”)
vq3 =8 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 =27.0000 18.6562 0.9375 0.9375 18.6562 27.0000
在一次传递中插入多组数据
定义样本点。
X = (-5: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 = gca;h.XTick = -5: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”
|“立方”
插值方法,从下表中指定一个值。
方法 | 描述 | 连续性 | 评论 | |
---|---|---|---|---|
“线性” |
线性插值。查询点上的插值值基于每个维度上相邻网格点上的值的线性插值。这是默认的插值方法。 | C0 |
|
|
“最近的” |
最近邻插值。查询点上的插值值是最近的样本网格点上的值。 | 不连续 |
|
|
“下一个” |
下一个邻居插值。查询点的内插值是下一个样本网格点的值。 | 不连续 |
|
|
“以前” |
以前的邻居插值。查询点上的插值值是前一个样例网格点上的值。 | 不连续 |
|
|
“pchip” |
保形分段三次插值。查询点上的插值值基于相邻网格点上的值保持形状的分段三次插值。 | C1 |
|
|
“立方”
|
一样“pchip” 。 |
C1 | 此方法当前返回的结果与“pchip” 。 |
|
“v5cubic” |
三次卷积在MATLAB中的应用®5. | C1 | 点必须均匀间隔。“立方” 将取代“v5cubic” 在未来的版本中。 |
|
样条的 |
样条插值使用非结结束条件。查询点上的插值值基于每个维度中相邻网格点上的值的三次插值。 | C2 |
|
外推法
-外推策略
“extrap”
|标量值
外推策略,指定为“extrap”
或者一个实标量。
指定
“extrap”
当你想要interp1
用它用于插值的相同方法来计算域外的点。需要时指定标量值
interp1
为域外的点返回特定的常数值。
默认行为取决于输入参数:
如果您指定
“pchip”
或样条的
插值方法,则默认行为为“extrap”
。所有其他插值方法返回
南
默认情况下,用于域外的查询点。
例子:“extrap”
例子:5
数据类型:字符
|单
|双
输出参数
矢量量化
-插值值
标量|向量|矩阵|数组
内插值,返回为标量、向量、矩阵或数组。的大小矢量量化
取决于形状v
和xq
。
v形 | xq的形状 | Vq大小 | 例子 |
---|---|---|---|
向量 | 向量 | 大小(xq) |
如果尺寸(v) = [1 100] 和 Size (xq) = [1 500] ,然后 Size (vq) = [1 500] 。 |
向量 | 矩阵 或N-D数组 |
大小(xq) |
如果尺寸(v) = [1 100] 和 Size (xq) = [5030] ,然后 Size (vq) = [50 30] 。 |
矩阵 或N-D数组 |
向量 | [长度(xq)大小(v, 2),…,大小(v, n)) |
如果尺寸(v) = [100 3] 和 Size (xq) = [1 500] ,然后 Size (vq) = [500 3] 。 |
矩阵 或N-D数组 |
矩阵 或N-D数组 |
(尺寸(xq, 1),…,大小(xq, n),…大小(v, 2),…,大小(v, m)] |
如果尺寸(v) = [4 5 6] 和 Size (xq) = [2 3 7] ,然后 Size (vq) = [2 3 7 5 6] 。 |
页
-分段多项式
结构
分段多项式,作为结构返回,你可以传递给ppval
用于求值的函数。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
代码生成不支持金宝app
“立方”
方法。相反,使用“v5cubic”
或样条的
。输入参数
x
(样本点)必须严格增加或严格减少。索引不会被重新排序。如果输入参数
v
(样本值)是一个变长向量(1 × -):
或:
-by-1),然后输出形状矢量量化
在MATLAB中匹配形状。如果输入参数
v
是可变大小的,不是可变长度的向量,并且在运行时变成行向量,则会发生错误。如果输入参数
xq
(查询点)是可变大小的,不是可变长度的向量,并且在运行时变成行或列向量,则会发生错误。看到工具箱函数代码生成的可变大小限制(MATLAB编码器)。
R2006a之前介绍
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。