文档

interpn

ndgrid格式的1-D、2-D、3-D和N-D网格数据插值

语法

Vq = interpn (X1, X2,…,Xn, V, Xq1, Xq2,…,Xqn)
Vq = interpn (V, Xq1, Xq2,…,Xqn)
Vq = interpn (V)
Vq = interpn (V, k)
Vq = interpn (___、方法)
Vq = interpn (___、方法、extrapval)

描述

例子

矢量量化= interpn (X1, X2,…,XnVXq1 Xq2,…,Xqn返回函数的内插值n使用线性插值的特定查询点上的变量。结果总是通过函数的原始抽样。X1, X2,…,Xn包含样本点的坐标。V包含每个采样点对应的函数值。Xq1 Xq2,…,Xqn包含查询点的坐标。

矢量量化= interpn (VXq1 Xq2,…,Xqn假设一个默认的样本点网格。默认网格由点(1,2,3,…n)组成在每一个维度。n的值第i维的长度在里面吗V.当您想要保存内存且不关心点之间的绝对距离时,可以使用此语法。

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

例子

矢量量化= interpn (Vk返回插值的值,该插值值是通过重复将间隔减半而形成的精细网格k每个维度的时间。这将导致2 ^ k - 1插值点之间的样本值。

例子

矢量量化= interpn (___方法指定可与前面任何语法一起传递的可选的尾随输入参数。方法可以是以下指定可选插值方法的任何一个:“线性”“最近的”“pchip”“立方”,或样条的.默认的方法是“线性”

例子

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

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

  • 的外推值样条的方法

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

例子

全部折叠

定义样本点和值。

X = [1 2 3 4 5];V = [12 16 31 10 6];

定义查询点,xq和插入。

xq = (1:0.1:5);vq = interpn (x, v, xq,“立方”);

策划的结果。

图绘制(x, v,“o”xq矢量量化,“- - -”);传奇(“样本”三次插值的);

创建一组网格点和相应的样例值。

(X1, X2) = ndgrid ((5:1:5));R =√X1。²+ X2²)+ eps;V =罪(R)。/ (R);

在更精细的网格上插入ntimes = 1

Vq = interpn (V,“立方”);网格(Vq);

创建网格向量,x1x2,x3.这些向量定义了与中的值相关的点V

x1 = 1:10 0;x2 = (1:50) ';x3 = 1:30;

将样本值定义为100 × 50 × 30的随机数数组,V.使用画廊函数创建数组。

V =画廊(“uniformdata”0、100、50、30日);

评估V在域外的三个点x1x2,x3.指定extrapval = 1

Xq1 = [0 0 0];Xq2 = [0 0 51];Xq3 = [0 101 102];vq = interpn (x1, x2, x3, V, xq1 xq2, xq3,“线性”, 1)
vq =1 1 1

这三个点的值都等于-1因为它们不在x1x2,x3

定义一个匿名函数表示$ f = te ^ {- x ^ {2} - y ^ {2} - z ^ {2}} $

F = @(x,y,z,t) t.*exp(-x。²- y.²- z.²);

创建一个网格点R ^ 4美元.然后,将这些点通过函数来创建样本值,V

[x, y, z, t] = ndgrid (1:0.2:1, 1:0.2:1, 1:0.2:1 0:2:10);V = f (x, y, z, t);

现在,创建查询网格。

[xq, yq zq、tq] =...ndgrid(1:0.05:1 1:0.08:1、1:0.05:1 0:0.5:10);

插入V在查询点。

Vq = interpn (x, y, z, t, V, xq, yq, zq、tq操作);

创建一个电影来显示结果。

图(渲染器的“zbuffer”);Nframes = size(tq, 4);j = 1: nframes片(yq (:,:,:, j), xq (:,:,:, j), zq (:,:,:, j),...矢量量化(:,:,:,j), 0, 0, 0);caxis ([0 10]);米(j) = getframe;结束电影(M);

输入参数

全部折叠

示例网格点,指定为实数组或向量。样本网格点必须是唯一的。

  • 如果X1, X2,…,Xn数组是否包含a的坐标完整网格(ndgrid格式).使用ndgrid函数来创建X1, X2,…,Xn排列在一起。这些数组的大小必须相同。

  • 如果X1, X2,…,Xn是带菌者,那么它们被视为网格向量.这些向量中的值必须是严格单调和增加。

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

例子:(X1, X2, X3, X4) = ndgrid (1:30, 10:10 1:5, 13)

数据类型:|

示例值,指定为实数组或复杂数组。尺寸要求V取决于的大小X1, X2,…,Xn

  • 如果X1, X2,…,Xn数组是否表示一个完整的网格(在ndgrid格式),然后的大小V匹配任何数组的大小,X1, X2,…,Xn

  • 如果X1, X2,…,Xn网格是向量吗V是其第Th维与网格向量的长度相同西,在那里i = 1,2,…n

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

例子:兰特(10、5、3、2)

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

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

  • 如果Xq1 Xq2,…,Xqn是标量,那么它们是单个查询点的坐标Rn

  • 如果Xq1 Xq2,…,Xqn是不同方向的向量吗Xq1 Xq2,…,Xqn中的网格向量Rn

  • 如果Xq1 Xq2,…,Xqn那么向量的大小和方向相同吗Xq1 Xq2,…,Xqn都被当作散点在Rn

  • 如果Xq1 Xq2,…,Xqn如果数组的大小相同,那么它们要么表示查询点的完整网格(在ndgrid格式)或分散的点Rn

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

例子:(X1, X2, X3, X4) = ndgrid(1:10, 1:5,七章,11)

例子:

数据类型:|

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

如果k0,然后矢量量化V

interpn (V, 1)interpn (V)

下面的插图描述了k = 2R2.其中72个插值值用红色表示,9个抽样值用黑色表示。

例子:interpn (V, 2)

数据类型:|

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

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

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

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

  • 用较少的内存需求进行最快的计算

“pchip” 保持形状的分段三次插值(仅适用于1-D)。查询点上的插值值基于相邻网格点上的保持形状的分段三次插值。 C1
  • 至少需要四点

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

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

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

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

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

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

定义域外的函数值X1, X2,…,Xn,指定为实标量或复标量。interpn的定义域之外的所有点返回此常量值X1, X2,…,Xn

例子:5

例子:5 + 1我

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

输出参数

全部折叠

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

语法 特殊的条件 矢量的大小 例子
Xn interpn (X1,…,V, Xq1,…,Xqn)
interpn (V, Xq1,…,Xqn)
这些语法的变体包括方法extrapval
Xq1,…,Xqn是标量 标量 size(Vq) = [1 1]当你通过Xq1,…,Xqn标量。
同上 Xq1,…,Xqn向量的大小和方向相同吗 大小和方向相同的向量Xq1,…,Xqn 在3 d中,如果
size(Xq1) = [100 1]
而且size(Xq2) = [100 1]
而且size(Xq3) = [100 1]
然后size(Vq) = [100 1]
同上 Xq1,…,Xqn矢量是混合方向的吗 长度尺寸(Vq) = ((Xq1)…,长度(Xqn)] 在3 d中,如果
size(Xq1) = [1 100]
而且size(Xq2) = [501]
而且size(Xq3) = [1 5]
然后size(Vq) = [100 50 5]
同上 Xq1,…,Xqn数组的大小是否相同 大小相同的数组Xq1,…,Xqn 在3 d中,如果
size(Xq1) = [50 25]
而且size(Xq2) = [50 25]
而且size(Xq3) = [50 25]
然后size(Vq) = [50 25]
interpn (V, k)
这个语法的变体包括方法extrapval
没有一个

的长度th维度是
2 ^ k *(大小(V, i) 1) + 1

在3 d中,如果
size(V) = [10 12 5]
而且k = 3
然后size(Vq) = [73 89 33]

更多关于

全部折叠

严格单调

一组总是增加或减少,没有反转的值。例如,这个序列,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),所以它根本不是单调的。

全网格(ndgrid格式)

interpn,整个网格由n数组,X1, X2,…,Xn,它的元素表示点的网格Rn.第i个数组,X,包含严格单调,增加沿第i维变化最快的值。

使用ndgrid函数创建一个可以传递到的完整网格interpn.例如,下面的代码在中创建一个完整的网格R2对于该区域,1≤X1≤≤3,1X2≤4。

(X1, X2) = ndgrid (1:3 (1:4))
X1 = -1 -1 -1 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 x2 = 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 3 4

网格向量

interpn,网格向量由n定义网格中的点的混合方向向量Rn

例如,下面的代码创建网格向量R3.对于该区域,1≤x1≤3,4≤x2≤5,6≤x3≤8:

x1 = 1:3;x2 = (4:5) ';x3 = 8;

散点

interpn,散点由n数组或向量,Xq1 Xq2,…,Xqn,它定义了分散在Rn.的th数组,西的坐标维度。

例如,以下代码指定了中的点(1,19,10)、(6,40,1)、(15,33,22)和(0,61,13)R3.

Xq1 = [1 6;15 0];Xq2 = [19 40;33 61);Xq3 = [10 1;22日13];

扩展功能

另请参阅

|||

之前介绍过的R2006a

这个话题有帮助吗?