主要内容

interpn

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

描述

例子

矢量量化= Interpn(x1,x2,...,xnV.Xq1 Xq2,…,Xqn的函数的内插值N.使用线性插值的特定查询点上的变量。结果总是经过函数的原始采样。x1,x2,...,xn包含样本点的坐标。V.包含每个采样点处的相应函数值。Xq1 Xq2,…,Xqn包含查询点的坐标。

矢量量化= Interpn(V.Xq1 Xq2,…,Xqn假设采样点的默认网格。默认网格由点,1,2,3,...... n一世在每个维度。n的值一世第i维的长度在吗V..当您想要保护内存时,请使用此语法,并且不关心点之间的绝对距离。

矢量量化= Interpn(V.通过在每个维度中分割一次样本值之间的间隔,返回在精细网格上的插值值。

例子

矢量量化= Interpn(V.K.通过反复减半形成的细化网格上的内插值返回内插值K.乘以每个维度。这将导致2 ^ k - 1在样本值之间插入点。

例子

矢量量化= Interpn(___方法指定备用插值方法:“线性”“最近的”“pchip”“立方”“makima”,或样条的.默认方法是“线性”

例子

矢量量化= 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 =√X1。^2 + X2.^2)+ 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..使用画廊函数创建数组。

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),...矢量量化(:,:,:,j), 0, 0, 0);caxis ([0 10]);米(j) = getframe;结尾电影(M);

输入参数

全部收缩

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

  • 如果x1,x2,...,xn是数组,那么它们包含a的坐标完整网格(以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维与网格向量长度相同西,在那里i = 1,2,…n

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

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

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

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

  • 如果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., 然后矢量量化是相同的V.

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

下图描述了k = 2R.2.红色是72个插值值,黑色是9个样本值。

例子:Interpn(v,2)

数据类型:|

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

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

  • 需要比“最近的”

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

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

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

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

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

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

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

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

  • 产生的波动比样条的

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

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

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

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

例子:5.

例子:5 + 1我

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

输出参数

全部收缩

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

语法 特殊的条件 矢量的大小 例子
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.
没有一个

数组的长度一世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,完整的网格包括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..的一世th数组,西,包含坐标一世维度。

例如,下面的代码指定了(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