interpn

内插1-d,2-d,3-d,和N-d在ndgrid格式栅格数据

描述

例子

VQ= interpn (X1, X2,…, Xn,V,XQ1,XQ2,...,Xqn)返回内插的函数的值n使用线性插值在特定的查询点的变量。结果总是通过功能的原始采样。X1, X2,…, Xn包含样品点的坐标。V包含每个样本点对应的函数值。XQ1,XQ2,...,Xqn包含查询点的坐标。

VQ= interpn (V,XQ1,XQ2,...,Xqn)假设一个默认的样本点网格。默认的网格由点,1,2,3,…n组成在每一个维度。n的值是第i维的在长度V。当您希望节省内存并且不关心点之间的绝对距离时,请使用此语法。

VQ= interpn (V)返回上通过将采样值之间的间隔一次在每个维度形成的精制网格中的内插值。

例子

VQ= interpn (V,k)返回由重复将间隔减半而形成的精细网格上的内插值k次在每个维度。这导致2 ^ k-1个样本值之间内插点。

例子

VQ= interpn (___,方法)指定一个替代的插值方法:“线性”,“最近”,'pchip','立方体','makima', 要么“花”。默认的方法是“线性”

例子

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

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

  • 的外推值“花”'makima'方法

  • 对于其它的内插方法的值

例子

全部折叠

定义采样点和值。

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 = SQRT(。X1 ^ 2 + X 2 ^ 2)+ EPS;V = SIN(R)./(R);

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

VQ = interpn(V,'立方体');目(VQ);

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

X1 = 1:100;X2 =(1:50)';X3 = 1:30;

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

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

评估V在外域的三个点X1,X2X3。指定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×3-1 -1 -1

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

定义表示的匿名函数$ f = te ^ {- 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');将为nframes =尺寸(TQ,4);j = 1: nframes片(yq (:,:,:, j), xq (:,:,:, j), zq (:,:,:, j),...VQ(:,:,:,j)中,0,0,0);CAXIS([0 10]);M(j)的=的getFrame;结束电影(M);

输入参数

全部折叠

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

  • 如果X1, X2,…, Xn是数组,则它们含有的坐标全网格(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)

数据类型:|
复数的支持:万博1manbetx

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

  • 如果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,7:9,10:11)

数据类型:|

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

如果k0,然后VQ等于V

interpn (V, 1)等于interpn(V)

下图描述了k = 2R2。有在红72个内插的值,并在黑9的采样值。

例:interpn (V, 2)

数据类型:|

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

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

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

“最近” 在查询点的插补值是在最近的采样网格点的值。 间断
  • 在每个维度中需要两个网格点。

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

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

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

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

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

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

'makima' 改进的Akima立方Hermite插值。查询点上的内插值基于多项式的分段函数,次数最多为三次,使用每个相应维度上邻近网格点的值计算。Akima公式被修改以避免过冲。 C1
  • 在每个维度中至少需要2个点

  • 产生比起伏少“花”

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

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

  • 需要更多的内存和计算时间'立方体'

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

例:5

例:5 + 1I

数据类型:|
复数的支持:万博1manbetx

输出参数

全部折叠

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

语法 特殊情况 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中,如果
大小(XQ1)= [100 1],
大小(XQ2)= [100 1],
大小(Xq3)= [100 1],
然后size(Vq) = [100 1]
同上 XQ1,...,Xqn是混合取向的矢量 大小(VQ)= [长度(XQ1),...,长度(Xqn)] 在3 d中,如果
大小(Xq1) = [1 100],
大小(XQ2)= [50 1],
大小(Xq3)= [1 5],
然后大小(VQ)= [100 50 5]
同上 XQ1,...,Xqn数组的大小相同吗 的大小相同的排列XQ1,...,Xqn 在3 d中,如果
大小(XQ1)= [50 25],
大小(XQ2)= [50 25],
大小(Xq3)= [50 25],
然后大小(VQ)= [50 25]
interpn(V,k)的
该语法的和变化包括方法要么extrapval
没有

阵列,其中的长度个尺寸为
2 ^ K *(大小(V,I)-1)+1,

在3 d中,如果
大小(V)= [10 12 5],
K = 3,
然后大小(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,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,网格矢量包括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。该个阵列,的坐标维度。

例如,下面的代码指定的点,(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前推出