interpn

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

描述

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

矢量量化= interpn(VXq1 Xq2,…, Xqn假设采样点的默认网格。缺省的网格由点,1,2,3,...,N的一世在每个维度。n的值一世第i维的长度是多少V。当你想节省内存,并且不关心两点之间的绝对距离此语法。

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

矢量量化= interpn(Vķ返回上通过重复地减半的间隔形成一精制网格内插值ķ次在每个维度。这导致2 ^ k - 1在样本值之间插入点。

矢量量化= interpn(___方法指定的替代的内插方法:“线性”“最近的”'pchip'“立方”“makima”, 要么样条的。默认方法是“线性”

矢量量化= interpn(___方法extrapval还规定extrapval,分配给所有查询标量值横亘该采样点的域的外部。

如果省略extrapval对于样本点的域之外的查询参数,则基于该方法论点interpn返回下列之一:

  • 对于外推值样条的“makima”方法

  • 为NaN其他插值方法的值

例子

全部收缩

定义采样点和值。

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,VQ,' - ');传奇(“样品”“立方插值”);

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

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

利用内插在更精细的网格N次= 1

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

创建网格矢量,X1X2X3。这些载体定义与在值相关联的分V

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

限定的样本值是100通过-50-通过-30的随机数阵列,V。使用画廊函数来创建阵列。

V =廊('uniformdata',100,50,30,0);

评估V在外域的三个点X1X2X3。指定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×31 1 1

所有这三个点来评估-1因为他们是外域X1X2X3

定义代表一个匿名函数$ F =叔^ { -  X ^ {2} ^ -y {2} -z ^ {2}} $

F = @(X,Y,Z,T)T * EXP(-x ^ 2  -  Y 1 2  -  z ^ 2);

创建点的网格$ 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');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,10:13)

数据类型:|

样本值,指定为实数或复数数组。尺寸要求V取决于大小X1,X2,...,XN

  • 如果X1,X2,...,XN是代表一个完整的网格阵列(在ndgrid格式),然后大小V匹配任意数组的大小,X1,X2,...,XN

  • 如果X1,X2,...,XN是格矢量,然后V是一个数组,其一世第维与网格向量长度相同西,在那里I = 1,2,... N

如果V包含复杂的数字,然后interpn插值单独的实部和虚部。

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

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

查询点,指定为实标量,矢量,或阵列。

  • 如果Xq1 Xq2,…, Xqn是标量,那么他们是一个单一的查询点的坐标[Rñ

  • 如果Xq1 Xq2,…, Xqn是不同取向的矢量,然后Xq1 Xq2,…, Xqn被视为在网格矢量[Rñ

  • 如果Xq1 Xq2,…, Xqn具有相同的大小和方向的矢量,然后Xq1 Xq2,…, Xqn被视为散点[Rñ

  • 如果Xq1 Xq2,…, Xqn具有相同的尺寸的阵列,然后它们代表任一的查询点的满格(在ndgrid在格式)或散射点[Rñ

注意

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

例子:[X1,X2,X3,X4] = ndgrid(1:10,1:5,7:9,10:11)

数据类型:|

细化系数,指定作为一个真正的,非负整数标量。此值指定的次数反复划分细化网格的间隔在每个维度的数目。这导致2 ^ k - 1在样本值之间插入点。

如果ķ0, 然后矢量量化是相同的V

interpn(V,1)是相同的interpn (V)

下图描述了k = 2时[R2。有72个内插值(红色)和9个样本值(黑色)。

例子:interpn(V,2)

数据类型:|

插值方法,规定为在该表中的选项之一。

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

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

“最近的” 查询点上的内插值为最近的样本网格点上的值。 间断
  • 要求在每个维度上的两个网格点。

  • 最快的计算与适度的内存需求

'pchip' 保形分段三次插值(1-d只)。在查询点的插补值在相邻的网格点是基于一个保形分段三次插值的值的。 C1
  • 要求至少四分

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

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

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

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

“makima” 改性阿克玛三次Hermite内插。在查询点的插补值最多三个使用每个相应维度相邻网格点的值进行评价是基于与多项式的分段函数。所述阿克玛式进行修饰以避免过冲。 C1
  • 需要在每个维度上至少2分

  • 产生比起伏少样条的

  • 计算时间一般小于样条的,但对内存的要求是相似的

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

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

函数值的外部域X1,X2,...,XN,指定为实数或复数标量。interpn返回外域的所有点这个常数的值X1,X2,...,XN

例子:

例子:5 + 1我

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

输出参数

全部收缩

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

语法 特殊情况 VQ的大小
interpn(X1,...,XN,V,XQ1,...,Xqn)
interpn(V,XQ1,...,Xqn)
这些语法包括的和变化方法要么extrapval
Xq1,…, Xqn是标量 标量 大小(VQ)= [1 1]当你通过Xq1,…, Xqn作为标量。
同上 Xq1,…, Xqn向量的大小和方向是否相同 相同尺寸和方向的矢量Xq1,…, Xqn 在3-d,如果
size(Xq1) = [100 1]
大小(XQ2)= [100 1]
大小(Xq3)= [100 1]
然后大小(VQ)= [100 1]
同上 Xq1,…, Xqn是混合取向的矢量 大小(VQ)= [长度(XQ1),...,长度(Xqn)] 在3-d,如果
大小(XQ1)= [1 100]
大小(XQ2)= [50 1]
大小(Xq3) = [15]
然后size(Vq) = [100 50 5]
同上 Xq1,…, Xqn具有相同的尺寸的阵列 的大小相同的数组Xq1,…, Xqn 在3-d,如果
大小(Xq1) = [50 25]
大小(XQ2)= [50 25]
大小(Xq3)= [50 25]
然后size(Vq) = [50 25]
interpn(V,k)的
这种语法的变体包括方法要么extrapval
没有一个

数组的长度一世th维度是
2 ^ K *(大小(V,I)-1)+1

在3-d,如果
大小(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,满格组成ñ阵列,X1,X2,...,XN,其元素代表点的栅格[Rñ。第i个数组,X一世包含严格单调,增加了变化最为迅速沿着第i维值。

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

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

网格矢量

对于interpn,网格矢量包括ñ在定义网格的点混合取向的矢量[Rñ

例如,下面的代码在[R3对于区域,1≤X1≤3,4≤X2≤5和6≤X3≤8:

X1 = 1:3;X2 =(4:5)';X3 = 6:8;

散点

对于interpn散点包括ñ阵列或载体,Xq1 Xq2,…, Xqn,它定义了分散的点的集合[Rñ。的一世th数组,西,包含了坐标一世第N维。

例如,下面的代码指定的点,(1,19,10),(6,40,1),(15,33,22),和(0,61,13)[R3

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

扩展功能

也可以看看

|||

R2006a前推出