主要内容

interpn.

ndGrid格式中的1-D,2-D,3-D和N-D网格数据的插值

描述

例子

VQ.= Interpn(x1,x2,...,xnV.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(___方法uplapval.还指定uplapval.,这是一个标量值,分配给位于样本点域之外的所有查询。

如果你省略了uplapval.对样本点域外查询的参数,然后基于方法争论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,vq,' - ');传奇(“样本”三次插值的);

图中包含一个坐标轴。轴包含2个类型的型号。这些对象代表样本,立方插值。

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

[x1,x2] = ndgrid(( -  5:1:5));r = sqrt(x1。^ 2 + x2。^ 2)+ eps;v = sin(r)./(r);

使用更精细的网格插入ntimes = 1

Vq = interpn (V,'立方体');网格(VQ);

图中包含一个坐标轴。轴包含一个类型为曲面的对象。

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

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

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

RNG(“默认”)v = rand(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×31 1 1

这三个点的计算结果都是-1因为它们不在。的范围之内x1x2,x3

定义代表的匿名函数$ f = te ^ { -  x ^ {2} -y ^ {2} -z ^ {2}} $

F = @(x,y,z,t)²- 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),...VQ(::,:,j),0,0,0);caxis([010]);m(j)= getFrame;结尾电影(M);

输入参数

全部收缩

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

  • 如果x1,x2,...,xn是阵列,然后它们包含一个坐标完整网格(以ndgrid格式).使用ndgrid.创建的功能x1,x2,...,xn阵列在一起。这些阵列必须具有相同的大小。

  • 如果x1,x2,...,xn是载体,然后他们被视为网格向量.这些向量中的值必须是严格单调,要么增加或减少。

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

数据类型:|双倍的

示例值,指定为真实或复杂的数组。尺寸要求V.取决于尺寸x1,x2,...,xn

  • 如果x1,x2,...,xn阵列代表完整网格(inndgrid.格式),那么大小V.匹配任何数组的大小,x1,x2,...,xn

  • 如果x1,x2,...,xn是网格向量吗V.是一个数组一世Th维度与电网矢量相同。xi., 在哪里i = 1,2,…n

如果V.包含复数,那么interpn.单独插值真实和虚部。

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

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

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

  • 如果XQ1,XQ2,...,XQN是标量,那么它们是单个查询点的坐标R.N

  • 如果XQ1,XQ2,...,XQN那么是不同方向的载体XQ1,XQ2,...,XQN被视为网格向量R.N

  • 如果XQ1,XQ2,...,XQN然后是相同大小和方向的载体XQ1,XQ2,...,XQN被视为分散点在R.N

  • 如果XQ1,XQ2,...,XQN是相同大小的阵列,然后它们代表了一个完整的查询点网格(inndgrid.格式)或分散点R.N

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

数据类型:|双倍的

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

如果K.0., 然后VQ.是相同的V.

Interpn(v,1)是相同的Interpn(v)

下图描述了k = 2R.2.红色和9个黑色样本值中有72个内插值。

例子:Interpn(v,2)

数据类型:|双倍的

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

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

  • 需要更多的记忆'最近'

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

  • 最快的计算,具有适度的内存要求

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

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

'立方体' 查询点处的插值值基于每个相应维度的相邻网格点处的值的立方插值。插值基于立方卷积。 C1
  • 网格在每个维度上必须有均匀的间距,但间距不必在所有维度上都相同

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

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

'makima' 修改了Akima立方Hermite插值。查询点处的插值值基于多项式的分段函数,最多使用每个相应维度中的相邻网格点的值进行评估。Akima公式被修改为避免过冲。 C1
  • 每个维度至少需要2分

  • 产生的波动比'样条曲线'

  • 计算时间通常小于'样条曲线',但内存需求是相似的

'样条曲线' 查询点处的插值值基于每个相应维度的相邻网格点处的值的立方插值。插值基于使用非-A-结的结束条件的立方样条。 C2
  • 每个维度需要四个点

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

域中的函数值x1,x2,...,xn,指定为真实或复杂的标量。interpn.返回此常量值的域外的所有点x1,x2,...,xn

例子:5.

例子:5 + 1i

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

输出参数

全部收缩

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

语法 特殊情况 矢量的大小 例子
Xn interpn (X1,…,V, Xq1,…,Xqn)
Interpn(v,xq1,...,xqn)
这些语法的变体包括方法uplapval.
xq1,...,xqn是标量 标量子 size(Vq) = [1 1]当你通过xq1,...,xqn作为标量。
与上述相同 xq1,...,xqn向量的大小和方向相同吗 大小和方向相同的向量xq1,...,xqn 在3-D中,如果
尺寸(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)= [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)
和这种语法的变化包括方法uplapval.
没有任何

数组,其中的长度一世尺寸是
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 4 6 8]是不是严格意义上的单调,因为两者之间的值没有变化B(2)B(3).这个序列,C = [2 4 6 8 6]包含逆转c (4)C(5),所以它根本不是单调。

完整网格(以ndgrid格式)

为了interpn.,完整的网格包括N数组,x1,x2,...,xn,其元素表示一个由点组成的网格R.N.第i个阵列,X一世,包含严格单调,增加沿着第i尺寸迅速变化的值。

使用ndgrid.函数创建可传递的完整网格interpn..例如,以下代码创建一个完整的网格R.2对于该地区,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 3 x2 = 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

网格向量

为了interpn.,网格向量由N定义网格点的混合取向的载体R.N

例如,以下代码创建网格向量R.3.对于该地区,1≤x1≤3,4≤x2≤5和6≤x3≤8:

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

散点

为了interpn.,散点组成N阵列或向量,XQ1,XQ2,...,XQN,定义分散在的一系列点R.N.这一世阵列,xi.,包含坐标一世维度。

例如,下面的代码指定了(1,19,10)、(6,401,1)、(15,33,22)和(0,61,13)R.3.

XQ1 = [1 6;15 0];xq2 = [19 40;33 61];XQ3 = [10 1;22 13];

扩展功能

也可以看看

|||

之前介绍过的R2006a