文档

interp2

网格格式的二维网格数据插值

语法

Vq = interp2(X,Y,V,Xq,Yq)
Vq = interp2(V,Xq,Yq)
Vq = interp2(V)
Vq = interp2(V,k)
Vq = interp2(___、方法)
Vq = interp2(___、方法、extrapval)

描述

例子

矢量量化= interp2 (X, YVXq, Yq使用线性插值返回两个变量函数在特定查询点的插值值。结果总是通过函数的原始抽样。XY包含样本点的坐标。V包含每个样本点对应的函数值。XqYq包含查询点的坐标。

矢量量化= interp2 (VXq, Yq假设一个默认的采样点网格。默认网格点覆盖矩形区域,X = 1: nY = 1: m,在那里[m,n] = size(V).当您希望节省内存并且不关心点之间的绝对距离时,可以使用此语法。

矢量量化= interp2 (V返回通过在每个维度中除以一次采样值之间的间隔形成的精细化网格上的插值值。

例子

矢量量化= interp2 (Vk返回通过重复将间隔减半而形成的精细化网格上的插值值k在每个维度上乘以。这导致2 ^ k - 1采样值之间的插值点。

例子

矢量量化= interp2 (___方法指定一个可选的尾随输入参数,您可以使用前面的任何语法传递该参数。方法可以是下列任意一种指定替代插值方法:“线性”“最近的”“立方”,或样条的.默认方法为“线性”

例子

矢量量化= interp2 (___方法extrapval还指定了extrapval,一个标量值,分配给位于样本点域之外的所有查询。

如果你省略extrapval参数用于样本点域外的查询,然后基于方法论点interp2返回下列参数之一:

  • 的外推值样条的方法

  • 值以外的插值方法样条的

例子

全部折叠

粗略地取样山峰函数。

[X,Y] = meshgrid(-3:3);V =峰值(X,Y);

绘制粗采样图。

figure surf(X,Y,V) title(“原始采样”);

创建间距为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);

绘制粗采样图。

figure surf(X,Y,V) title(“原始采样”);

创建间距为0.25的查询网格。

[Xq,Yq] = meshgrid(-3:0.25 . 3);

在查询点进行插值,并指定三次插值。

Vq = interp2(X,Y,V,Xq,Yq,“立方”);

绘制结果。

图冲浪(Xq, Yq Vq);标题(“精细网格上的三次插值”);

将一些图像数据加载到工作区中。

负载小丑

分离图像的一个小区域并将其转换为单个。

V = single(X(1:24,75:225));

显示图像。

图显示亮度图像(V);colormap灰色的图像标题(原始图像的);

通过在每个维度上重复划分精化网格点之间的间隔五次来插入插值值。

Vq = interp2(V,5);

显示结果。

图显示亮度图像(Vq);colormap灰色的图像标题(线性插值的);

在范围内对函数进行粗略采样,(2, 2)在两个维度上。

[X,Y] = meshgrid(-2:0.75:2);R =√(X)^2 + y ^2)+ eps;V = sin(R) /(R);

绘制粗采样图。

figure surf(X,Y,V) xlim([-4 4]) ylim([-4 4]) title(“原始采样”

创建扩展到域之外的查询网格XY

[Xq,Yq] = meshgrid(-3:0.2:3);

在域内执行三次插值XY,并将所有不在查询范围内的查询赋值为零。

Vq = interp2(X,Y,V,Xq,Yq,“立方”, 0);

绘制结果。

figure surf(Xq,Yq,Vq) title(X和Y外域Vq=0的三次插值);

输入参数

全部折叠

样本网格点,指定为实矩阵或向量。样本网格点必须是唯一的。

  • 如果XY是矩阵吗,它们包含a的坐标全网格(网格格式).使用meshgrid函数来创建XY矩阵在一起。两个矩阵的大小必须相同。

  • 如果XY是向量,那么它们被当作a网格向量.两个向量的值必须是严格单调和增加。

    注意:在未来的版本中,interp2不接受样本和查询网格的行向量和列向量的混合组合。相反,您必须使用meshgrid.或者,如果您有一个大的数据集,您可以使用griddedInterpolant而不是interp2

例子:[X,Y] = meshgrid(1:30,-10:10)

数据类型:|

样本值,指定为实矩阵或复矩阵。尺寸要求V取决于的大小XY

  • 如果XY矩阵是否代表一个完整的网格(在meshgrid格式),然后V一定和?一样大吧XY

  • 如果XY那么,网格是矢量吗V必须是一个矩阵,包含长度(Y)行和长度(X)列。

如果V包含复数interp2分别插值实部和虚部。

例子:兰特(10,10)

数据类型:|
复数支持:金宝app是的

查询点,指定为实标量、向量、矩阵或数组。

  • 如果XqYq是标量,那么它们是单个查询点的坐标。

  • 如果XqYq向量有不同的方向吗XqYq被视为网格向量。

  • 如果XqYq向量的大小和方向是一样的吗XqYq被视为散点在二维空间中。

  • 如果XqYq是矩阵,那么它们要么表示查询点的完整网格(在meshgrid格式)或分散点。

  • 如果XqYq为N-D数组,则表示二维空间中的分散点。

    注意:在未来的版本中,interp2不接受样本和查询网格的行向量和列向量的混合组合。相反,您必须使用meshgrid.或者,如果您有一个大的数据集,您可以使用griddedInterpolant而不是interp2

例子:[Xq,Yq] = meshgrid((1:0.1:10),(-5:0.1:0))

数据类型:|

细化因子,指定为实数、非负整数标量。此值指定在每个维度中重复划分精细化网格间隔的次数。这导致2 ^ k - 1采样值之间的插值点。

如果k0,然后矢量量化等于V

interp2 (V, 1)等于interp2 (V)

下图显示了在9个样本值(黑色)中插入值(红色)的位置k = 2

例子:interp2 (V, 2)

数据类型:|

插值方法,作为此表中的选项指定。

方法 描述 连续性 评论
“线性” 查询点上的插值值是基于每个维度上相邻网格点上的值的线性插值。这是默认的插值方法。 C0
  • 每个维度至少需要两个网格点

  • 需要更多的内存“最近的”

“最近的” 查询点处的插值值是最近的样本网格点处的值。 不连续
  • 每个维度需要两个网格点。

  • 以适度的内存需求实现最快的计算

“立方” 查询点上的插值值是基于相邻网格点在每个维度上的值的三次插值。插值是基于三次卷积的。 C1
  • 网格必须在每个维度上具有均匀的间距,但间距不必在所有维度上都相同

  • 在每个维度上至少需要四个点

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

样条的 查询点上的插值值是基于相邻网格点在每个维度上的值的三次插值。插值是基于一个三次样条使用无结的末端条件。 C2
  • 在每个维度上需要四个点

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

域外的函数值XY,指定为实标量或复标量。interp2的域之外的所有点返回此常量值XY

例子:5

例子:5 + 1我

数据类型:|
复数支持:金宝app是的

输出参数

全部折叠

插值值,作为实或复标量、矢量或矩阵返回。的大小和形状矢量量化取决于您使用的语法,在某些情况下,还取决于输入参数的大小和值。

语法 特殊的条件 Vq的大小 例子
Xq interp2 (X, Y, V, Yq)
interp2 (V, Xq, Yq)
这些语法的变体包括方法extrapval
XqYq是标量 标量 size(Vq) = [11]当你经过XqYq标量。
同上 XqYq向量的大小和方向是否相同 大小和方向相同的矢量XqYq 如果size(Xq) = [100 1]
size(Yq) = [100 1]
然后size(Vq) = [100 1]
同上 XqYq向量是混合方向的吗 矩阵的行数为长度(Yq),列数为长度(Xq) 如果size(Xq) = [1 100]
size(Yq) = [501]
然后size(Vq) = [50 100]
同上 XqYq矩阵或数组的大小相同吗 大小相同的矩阵或数组XqYq 如果size(Xq) = [50 25]
size(Yq) = [50 25]
然后size(Vq) = [50 25]
interp2 (V, k)
这种语法的变体包括方法extrapval
没有一个

矩阵的行数为:
2^k * (size(V,1)-1)+1

列数为:
2^k * (size(V,2)-1)+1

如果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),所以它不是单调的。

全网格(in meshgrid Format)

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 1 1 1 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 4

网格向量

interp2,网格矢量由一对矢量组成,它们定义了x- - -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];4 10];Y = [7 3];1 9];

扩展功能

R2006a之前引入

这个话题有帮助吗?