interp2
网格格式的二维网格数据插值
语法
描述
例子
使用默认方法在网格上进行插值
粗取样山峰
函数。
[X,Y] = meshgrid(-3:3);V =峰(X,Y);
绘制粗抽样图。
数字冲浪(X,Y,V)标题(“原始采样”);
创建间距为0.25的查询网格。
[Xq,Yq] = meshgrid(-3:0.25:3);
在查询点进行插值。
Vq = interp2(X,Y,V,Xq,Yq);
画出结果。
图冲浪(Xq, Yq Vq);标题(“使用更细网格的线性插值”);
用三次方法在网格上插值
对峰函数进行粗抽样。
[X,Y] = meshgrid(-3:3);V =峰(7);
绘制粗抽样图。
数字冲浪(X,Y,V)标题(“原始采样”);
创建间距为0.25的查询网格。
[Xq,Yq] = meshgrid(-3:0.25:3);
在查询点进行插值,并指定三次插值。
Vq = interp2(X,Y,V,Xq,Yq,“立方”);
画出结果。
图冲浪(Xq, Yq Vq);标题(“精细网格上的立方插值”);
灰度图像细化
将一些图像数据加载到工作区中。
负载flujet.matcolormap灰色的
隔离图像的一个小区域,并将其投射到单精度。
V =单(X(200:300,1:25));
显示图像区域。
显示亮度图像(V);轴从标题(原始图像的)
通过在每个维度上重复划分5次细化网格点之间的间隔来插入插值值。
Vq = interp2(V,5);
显示结果。
显示亮度图像(Vq);轴从标题(线性插值的)
在X和Y的域外求值
在范围内对函数进行粗略抽样,(2, 2)
在两个维度中。
[X,Y] = meshgrid(- 2:75:2);R =√(X。^2 + y ^2)+ eps;V = sin(R)./(R);
绘制粗抽样图。
图surf(X,Y,V) xlim([-4 4]) ylim([-4 4]) title(“原始采样”)
创建扩展到域之外的查询网格X
而且Y
.
[Xq,Yq] = meshgrid(-3:0.2:3);
的域内进行三次插值X
而且Y
,并将所有在此范围之外的查询赋值为0。
Vq = interp2(X,Y,V,Xq,Yq,“立方”, 0);
画出结果。
数字冲浪(Xq,Yq,Vq)标题(Vq=0的X、Y外三次插值);
输入参数
X, Y
- - - - - -样本网格点
矩阵|向量
样本网格点,指定为实矩阵或向量。样本网格点必须是唯一的。
如果
X
而且Y
是矩阵,那么它们包含a的坐标完整网格(网格格式).使用meshgrid
函数来创建X
而且Y
矩阵在一起。两个矩阵的大小必须相同。
例子:[X,Y] = meshgrid(1:30,-10:10)
数据类型:单
|双
V
- - - - - -样本值
矩阵
样例值,指定为实矩阵或复矩阵。尺寸要求V
取决于的大小X
而且Y
:
如果
X
而且Y
矩阵是否表示一个完整的网格(inmeshgrid
格式),然后V
一定要和X
而且Y
.如果
X
而且Y
网格是向量吗V
一定是矩阵包含长度(Y)
行和长度(X)
列。
如果V
那么,它包含复数interp2
分别插值实部和虚部。
例子:兰特(10,10)
数据类型:单
|双
复数支持:金宝app是的
Xq, Yq
- - - - - -查询点
标量|向量|矩阵|数组
查询点,指定为实标量、向量、矩阵或数组。
如果
Xq
而且Yq
是标量,则它们是单个查询点的坐标。如果
Xq
而且Yq
向量的方向是不同的吗Xq
而且Yq
被视为网格向量。如果
Xq
而且Yq
那么向量的大小和方向是相同的吗Xq
而且Yq
被视为散点在二维空间中。如果
Xq
而且Yq
是矩阵,那么它们要么表示一个完整的查询点网格(inmeshgrid
格式)或分散的点。如果
Xq
而且Yq
为N-D数组,则它们表示二维空间中的散点。
例子:[Xq,Yq] = meshgrid((1:0.1:10),(-5:0.1:0))
数据类型:单
|双
k
- - - - - -细分因素
1
(默认)|实数,非负整数标量
细化因子,指定为一个实的、非负的整数标量。此值指定在每个维度中重复划分细化网格间隔的次数。结果是2 ^ k - 1
插值点之间的样本值。
如果k
是0
,然后矢量量化
和V
.
interp2 (V, 1)
和interp2 (V)
.
下图显示了插入值(红色)在9个样本值(黑色)中的位置k = 2
.
例子:interp2 (V, 2)
数据类型:单
|双
方法
- - - - - -插值法
“线性”
(默认)|“最近的”
|“立方”
|样条的
|“makima”
插值方法,指定为本表中的选项之一。
方法 | 描述 | 连续性 | 评论 |
---|---|---|---|
“线性” |
查询点上的插值值基于每个维度上相邻网格点上的值的线性插值。这是默认的插值方法。 | C0 |
|
“最近的” |
查询点上的插值值是最近的样本网格点上的值。 | 不连续 |
|
“立方” |
查询点上的插值值基于每个维度中相邻网格点上的值的三次插值。插值是基于三次卷积的。 | C1 |
|
“makima” |
改进的Akima立方Hermite插值。在查询点上的插值值基于一个分段多项式函数,该函数的阶数最多为3,使用每个各自维度中相邻网格点的值进行评估。Akima公式被修改以避免超调。 | C1 |
|
样条的 |
查询点上的插值值基于每个维度中相邻网格点上的值的三次插值。插值是基于使用非结结束条件的三次样条。 | C2 |
|
extrapval
- - - - - -域外的函数值X
而且Y
标量
域外的函数值X
而且Y
,指定为实数或复数标量。interp2
的定义域外的所有点返回此常量值X
而且Y
.
例子:5
例子:5 + 1我
数据类型:单
|双
复数支持:金宝app是的
输出参数
矢量量化
-插值值
标量|向量|矩阵
内插值,返回为实数或复数标量、向量或矩阵。大小:…的大小和形状矢量量化
这取决于您使用的语法,在某些情况下,还取决于输入参数的大小和值。
语法 | 特殊的条件 | Vq大小 | 例子 |
---|---|---|---|
Xq interp2 (X, Y, V, Yq) interp2 (V, Xq, Yq) 这些语法的变体包括 方法 或extrapval |
Xq ,Yq 是标量 |
标量 | size(Vq) = [1 1] 当你经过Xq 而且Yq 标量。 |
同上 | Xq ,Yq 向量的大小和方向相同吗 |
相同大小和方向的向量Xq 而且Yq |
如果size(Xq) = [100 1] 而且 size(Yq) = [100 1] ,然后 size(Vq) = [100 1] . |
同上 | Xq ,Yq 矢量是混合方向的吗 |
矩阵,其中行数为长度(Yq) ,列数为长度(Xq) |
如果size(Xq) = [1 100] 而且 size(Yq) = [50 1] ,然后 size(Vq) = [50 100] . |
同上 | Xq ,Yq 矩阵或数组的大小相同吗 |
相同大小的矩阵或数组Xq 而且Yq |
如果size(Xq) = [5025] 而且 size(Yq) = [50 25] ,然后 size(Vq) = [50 25] . |
interp2 (V, k) 这种语法的变体包括 方法 或extrapval |
没有一个 | 矩阵中行数为: |
如果size(V) = [10 20] 而且 K = 2 ,然后 size(Vq) = [37 77] . |
更多关于
严格单调
一组始终在增加或减少,没有反转的值。例如,这个序列,A = [2 4 6 8]
是严格单调递增的。这个序列,B = [2 4 4 6 8]
不是严格单调的因为它们之间的值没有变化b (2)
而且b (3)
.这个序列,C = [2 4 6 8 6]
包含在c (4)
而且c (5)
,所以它根本不是单调的。
全网格(网格格式)
为interp2
,完整网格是一对矩阵,其元素表示矩形区域上的点网格。一个矩阵包含x-坐标,而另一个矩阵包含y坐标。中的值x矩阵是严格单调沿着行递增。它列上的值是常数。中的值y-矩阵是严格单调的,并且沿着列递增。它行上的值是常数。使用meshgrid
函数创建一个可以传递给它的完整网格interp2
.
例如,下面的代码为区域-1≤创建一个完整的网格x≤3和1≤y≤4:
[X,Y] = meshgrid(-1:3,(1:4))
X = -1 0 1 2 3 -1 0 1 2 3 -1 0 1 2 3 -1 0 1 2 3 y = 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 4
网格向量是一种比完整网格更紧凑的表示网格的格式。两种格式之间的关系和样本值的矩阵V
是
网格向量
为interp2
,网格向量由一对向量组成,它们定义x- - -y网格中的-坐标。行向量定义了x-coordinates,列向量定义y坐标。
例如,下面的代码创建指定区域的网格向量,-1≤x≤3和1≤y≤4:
X = -1:3;Y = (1:4)';
散点
为interp2
,散点由一对数组组成,这些数组定义了分散在二维空间中的点的集合。一个数组包含x-坐标,另一个包含y坐标。
例如,下面的代码指定了点(2,7),(5,3),(4,1)和(10,9):
X = [2 5;4 10];Y = [7 3;1 9];
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
Xq
而且Yq
必须是一样的尺寸。使用meshgrid
在网格上求值为获得最佳结果,请提供
X
而且Y
向量。这些向量中的值必须是严格单调且递增的。代码生成不支持金宝app
“makima”
插值方法。为
“立方”
插补方法中,如果网格间距不均匀,就会产生误差。在本例中,使用样条的
插值方法。为获得最佳效果,当您使用
样条的
插值方法:使用
meshgrid
要创建输入Xq
而且Yq
.使用少量的相对于尺寸的插补点
V
.在一大组分散的点上进行插值效率很低。
GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。
使用注意事项和限制:
Xq
而且Yq
必须是一样的尺寸。使用meshgrid
在网格上求值为获得最佳结果,请提供
X
而且Y
向量。这些向量中的值必须是严格单调且递增的。代码生成不支持金宝app
“makima”
插值方法。为
“立方”
插补方法中,如果网格间距不均匀,就会产生误差。在本例中,使用样条的
插值方法。为获得最佳效果,当您使用
样条的
插值方法:使用
meshgrid
要创建输入Xq
而且Yq
.使用少量的相对于尺寸的插补点
V
.在一大组分散的点上进行插值效率很低。
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
使用注意事项和限制:
V
必须是双或单二维数组。V
可以是真实的,也可以是复杂的。V
不能是向量。X
而且Y
必须:有相同的类型(双份或单份)。
是有限向量或二维数组,具有相应维度的递增和不重复元素。
与笛卡尔轴对齐时
X
而且Y
都是非矢量二维数组(就好像它们是由meshgrid
).具有与
V
.
Xq
而且Yq
必须是相同类型的向量或数组(双精度或单精度)。如果Xq
而且Yq
是数组,那么它们必须具有相同的大小。如果它们是不同长度的向量,那么它们一定有不同的方向。方法
必须“线性”
,“最近的”
,或“立方”
.不支持对边界外输入的外推。金宝app
有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
分布式阵列
使用并行计算工具箱™跨集群的组合内存对大型数组进行分区。
该函数完全支持分布式数组。金宝app有关更多信息,请参见运行MATLAB函数与分布式阵列(并行计算工具箱).
版本历史
R2006a之前介绍
第一MATLAB
海脂循环匹配函数对应求解MATLAB:
Esegui il commanmando inserendolo nella finestra di commanmando MATLAB。我的浏览器web不支持和MATLAB金宝app。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。