主要内容

griddedInterpolant

网格数据插值

描述

使用griddedInterpolant进行插值在一维,二维,三维,或者一天网格数据集。griddedInterpolant返回interpolantF对于给定的数据集,可以评估F在一组查询点,等(yq xq)在二维插值vq = F (xq yq)

使用scatteredInterpolant进行插值,分散的数据

创建

描述

F= griddedInterpolantinterpolant对象创建一个空的网格数据。

例子

F= griddedInterpolant (xgydF4y2Ba,v)创建了一个一维的向量interpolant采样点xgydF4y2Ba和相应的值v

例子

F= griddedInterpolant (X1,X2、……Xn,V)创建一个二维,三维,或者一天interpolant使用完整的网格样本点作为一组传递n维数组X1, X2,…, Xn。的V数组包含相关的样本值点位置X1, X2,…, Xn。每一个数组X1, X2,…, Xn必须是一样的尺寸吗V

例子

F= griddedInterpolant (V)使用默认的网格创建interpolant。当你使用这个语法,griddedInterpolant将网格定义为一组点的间距1和范围是1,大小(V,我))在维度。当你想使用这个语法节约内存,不关心绝对点之间的距离。

例子

F= griddedInterpolant (gridVecs,V)指定一个单元阵列gridVecs包含n网格向量描述一个n维网格采样点。当你想使用这个语法也使用一个特定的网格和节省内存。

例子

F= griddedInterpolant (___,方法)指定了插值方法:“线性”,“最近的”,“下一个”,“以前”,“pchip”,“立方”,“makima”,或样条的。您可以指定方法作为最后一个输入参数的任何以前的语法。

例子

F= griddedInterpolant (___,方法,ExtrapolationMethod)指定的内插和外推方法。griddedInterpolant使用ExtrapolationMethod估计的价值当你查询点超出采样点的域。

输入参数

全部展开

采样点,指定为一个向量。xgydF4y2Bav必须是相同的大小。的采样点xgydF4y2Ba必须是唯一的。

数据类型:|

样本值,指定为一个向量,矩阵,或多维数组。的元素v是对应的采样点的值xgydF4y2Ba

  • 使用一组值,插入xgydF4y2Bav一定长度相同的向量。

  • 使用多个组值插入,v可以通过额外维度的数组相比xgydF4y2Ba。第一维的大小v必须匹配的采样点数量吗xgydF4y2Ba,每一列v定义了一个单独的组一维的值。例如,如果xgydF4y2Ba是一个列向量与10个元素,您可以指定吗v作为插入10-by-4矩阵使用四个不同的值。

数据类型:|

采样点在网格形式,作为单独的指定n维数组。采样点必须是唯一的,排序。您可以创建数组X1, X2,…, Xn使用ndgrid函数。这些数组都是一样的大小,每一个都是一样的大小V

数据类型:|

采样点在网格向量形式,指定为一个单元阵列的网格向量{xg1, xg2,…, xgn}。采样点必须是唯一的,排序。向量必须指定一个网格大小一样V。换句话说,大小(V) =(长度(xg1) (xg2)…,长度(xgn)]。使用这种形式代替完整的网格来节省内存当你的网格是非常大的。

数据类型:|

样本值,指定为一个数组。的元素V采样点对应的值。第一个N的尺寸V必须具有相同的大小相应的维度的采样点的网格,在哪里N网格的数量的维度。

  • 使用一组值,插入指定V作为数组具有相同大小的网格采样点。例如,如果采样点形成一个网格大小100 -,- 100,你可以指定一个矩阵的值相同的大小。

  • 使用多组插入值,指定V作为数组与额外维度与采样点的网格。额外维度定义多个值在每个采样点。例如,如果采样点形成一个网格大小100 -,- 100,您可以指定的值作为一个数组大小100 -通过- 100 - 4插入使用四个不同的100 - 100的值。

数据类型:|

插值方法,指定为这个表的选项之一。

方法 描述 连续性 评论
“线性”(默认) 线性插值。插入的值查询点是基于线性插值相邻网格点的值在每个各自的维度。 C0
  • 至少需要两个网格点在每一个维度

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

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

  • 最快的计算和内存需求

“下一个” 下一个邻居插值(一维)。插入的值查询点是在下一个采样网格点的值。 不连续
  • 至少需要2点

  • 相同的内存需求和计算时间“最近的”

“以前” 以前的邻居插值(一维)。插入的值查询点是前面的示例网格点的值。 不连续
  • 至少需要2点

  • 相同的内存需求和计算时间“最近的”

“pchip” 仅一种保形分段立方插值(一维)。插入的值查询点是基于一种保形分段立方插值在相邻网格点的值。 C1
  • 至少需要4分

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

“立方” 立方插值。插入的值查询点是基于立方插值的相邻网格点的值在每个各自的维度。一立方卷积插值为基础。 C1
  • 网格必须均匀间距,尽管每个维度的间隔没有是一样的

  • 至少需要4点在每一个维度

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

“makima” 修改Akima立方埃尔米特插值。插入的值查询点是基于分段函数的多项式学位最多三个评估使用相邻网格点的值在每个各自的维度。Akima公式修改,避免过激的。 C1
  • 至少需要2点在每一个维度

  • 产生更少的波动比样条的,但没有平一样积极“pchip”

  • 计算更昂贵的比“pchip”,但通常小于样条的

  • 内存需求是相似的样条的

样条的 三次样条插值。插入的值查询点是基于立方插值的相邻网格点的值在每个各自的维度。基于三次样条插值使用not-a-knot结束条件。 C2
  • 需要在每个维度4分

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

外推方法,指定为“线性”,“最近的”,“下一个”,“以前”,“pchip”,“立方”,样条的,或“makima”。此外,您可以指定“没有”如果你想查询返回的外部域的网格值。

如果您省略ExtrapolationMethod,默认是你指定的值方法。如果您省略了方法ExtrapolationMethod参数,默认值“线性”

属性

全部展开

网格向量,指定为一个单元阵列{xg1, xg2,…, xgn}。这些向量指定网格点(位置)的值。网格点必须是唯一的。

数据类型:细胞

在采样点函数值,指定为数组与网格点的值GridVectors

数据类型:|

插值方法,指定为一个特征向量。方法可以是:“线性”,“最近的”,“下一个”,“以前”,“pchip”,“立方”,样条的,或“makima”。看到方法这些方法的描述。

数据类型:字符

外推方法,指定为一个特征向量。ExtrapolationMethod可以是:“线性”,“最近的”,“下一个”,“以前”,“pchip”,“立方”,样条的,“makima”,或“没有”。的值“没有”表明推断是禁用的。的值是默认值方法

数据类型:字符

使用

使用griddedInterpolant创建interpolant,F。然后你可以评估F在特定使用下列语法点:

Vq = F (Xq)
Vq = F (xqn xq1, xq2,…)
Vq = F (Xqn Xq1, Xq2,…)
Vq = F ({xgq1 xgq2,…, xgqn})

  • Vq = F (Xq)指定查询点的矩阵Xq。每一行的Xq包含一个查询点的坐标。

  • Vq = F (xqn xq1, xq2,…)指定查询点xq1 xq2,…, xqn列向量的长度代表点分散在n维空间。

  • Vq = F (Xqn Xq1, Xq2,…)指定查询点使用n维数组Xq1 Xq2,…, Xqn,定义一个完整的网格的点。

  • Vq = F ({xgq1 xgq2,…, xgqn})指定查询点网格向量。使用这个语法来节省内存当你想查询一大网格点。

例子

全部折叠

使用griddedInterpolant插入一个一维的数据集。

创建一个向量分散的采样点v。点是随机抽样的一维位置0到20之间。

x =排序(20 *兰德(100 1));v = besselj (0, x);

创建一个网格interpolant对象的数据。默认情况下,griddedInterpolant使用“线性”插值方法。

F = griddedInterpolant (x, v)
与属性:F = griddedInterpolant GridVectors: {[100 x1双]}值:[100 x1双]方法:“线性”ExtrapolationMethod:“线性”

查询interpolantF在500 0到20之间均匀间隔的点。情节插值结果(vq xq)原始数据(x, v)

xq = linspace (0, 20500);vq = F (xq);情节(x, v,“罗”)举行情节(xq,矢量量化,“。”)传说(采样点的,“插值”)

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

使用两种方法来指定插入3 d数据查询点。

创建和绘制三维数据集表示的函数 z ( xgydF4y2Ba , ygydF4y2Ba ) = ( xgydF4y2Ba 2 + ygydF4y2Ba 2 ) xgydF4y2Ba 2 + ygydF4y2Ba 2 评估一组网格采样点的距离(5,5)。

(x, y) = ndgrid (5:0.8:5);z = sin (x。^ 2 + y ^ 2) / (x。^ 2 + y ^ 2);冲浪(x, y, z)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

创建一个网格interpolant对象的数据。

F = griddedInterpolant (x, y, z);

用细网查询interpolant,提高分辨率。

[xq, yq] = ndgrid (5:0.1:5);vq = F (xq, yq);冲浪(xq yq vq)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

在这种情况下,有很多样本点或查询点,和内存使用成为一个问题,你可以使用网格向量提高内存使用。

  • 当你指定网格向量而不是使用ndgrid创建完整的网格,griddedInterpolant避免形成完整的查询网格进行计算。

  • 当你通过网格向量,它们通常组合在一起作为细胞单元阵列,{xg1, xg2,…,xgn}。网格向量是一个紧凑的方式来表示整个网格的点。

另外,使用网格向量执行前面的命令。

x = 5:0.8:5;y = x ';z = sin (x。^ 2 + y ^ 2) / (x。^ 2 + y ^ 2);F = griddedInterpolant ({x, y}, z);xq = 5:0.1:5;yq = xq ';vq = F ({xq, yq});冲浪(xq yq vq)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

使用默认的网格上执行一个快速插值一组采样点。默认的网格使用unit-spaced点,所以这插值时是有用的xy采样点之间的间距不重要。

创建一个样本函数的矩阵值,并把它们与默认的网格。

x = (1:0.3:5)”;y = x ';V = cos (x) * sin (y);n =长度(x);冲浪(1:n, 1: n V)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

使用默认插入数据网格。

F = griddedInterpolant (V)
与属性:F = griddedInterpolant GridVectors: {(1 2 3 4 5 6 7 8 9 10 11 12 13 14] [1 2 3 4 5…]}值:[14 x14双]方法:“线性”ExtrapolationMethod:“线性”

查询interpolant和策划的结果。

[xq, yq] = ndgrid (1:0.2: n);Vq = F (xq, yq);冲浪(xq, yq Vq)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

插入粗抽样数据使用一个完整的网格间距的0.5

定义样本点为一个网格,具有范围(1,10)在这两个维度。

(X, Y) = ndgrid (1:10, 1:10);

样本 f ( xgydF4y2Ba , ygydF4y2Ba ) = xgydF4y2Ba 2 + ygydF4y2Ba 2 在网格点。

V = X。^ 2 + y ^ 2;

创建interpolant,指定立方插值。

V F = griddedInterpolant (X, Y,,“立方”);

定义查询的完整网格点0.5在这些点间距和评估interpolant。然后阴谋的结果。

[Xq, Yq] = ndgrid (1:0.5:10 1:0.5:10);Vq = F (Xq, Yq);网格(Xq Yq Vq);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

比较结果的查询interpolant以外的领域F使用“pchip”“最近的”外推方法。

创建interpolant,指定“pchip”插值方法和“最近的”外推法。

x = (1 2 3 4 5);v = (12 16 31 10 6);F = griddedInterpolant (x, v,“pchip”,“最近的”)
与属性:F = griddedInterpolant GridVectors:{(1 2 3 4 5)}值:[12 16 31 10 6]方法:“pchip”ExtrapolationMethod:“最近”

查询interpolant,包括点的领域之外F

xq = 0:0.1:6;vq = F (xq);图绘制(x, v,“o”xq矢量量化,“- b”);传奇(“v”,矢量量化的)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表v,矢量量化。

查询interpolant再次在同一点,这一次使用pchip外推法。

F。ExtrapolationMethod =“pchip”;图vq = F (xq);情节(x, v,“o”xq矢量量化,“- b”);传奇(“v”,矢量量化的)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表v,矢量量化。

使用griddedInterpolant插入三个不同的值在同一查询点。

创建一个网格的采样点 - - - - - - 5 X 5 - - - - - - 3 Y 3

gx = 5;gy =三3;(X, Y) = ndgrid (gx gy);

评估三种不同功能查询点,然后连接成一个三维数组的值。的大小V是一样的吗XY网格在第一两个维度,但额外维度的大小反映了与每个样本点关联值的数量(在这种情况下,三个)。

f1 = X。^ 2 + y ^ 2;f2 = X。^ 3 + y ^ 3;f3 = X。^ 4 + y ^ 4;V =猫(3,f1, f2, f3);

创建一个interpolant使用采样点和相关联的值。

F = griddedInterpolant (X, Y, V);

创建一个网格查询点细孔网规模相对于采样点。

qx = 5:0.4:5;qy = 3:0.4:3;[XQ, YQ] = ndgrid (qx、qy);

插入所有三组值的查询点。

VQ = F (XQ, YQ);

比较原始数据的插值结果。

tiledlayout (2) nexttile冲浪(X, Y, f1)标题(“f1”)nexttile冲浪(XQ, YQ VQ(:,: 1)标题(“窜改f1”)nexttile冲浪(X, Y, f2)标题(“f2”)nexttile冲浪(XQ, YQ VQ(:,: 2)标题(“窜改f2”)nexttile冲浪(X, Y, f3)标题(‘f3’)nexttile冲浪(XQ, YQ VQ(:,:, 3)标题(“窜改f3”)

图包含6轴对象。坐标轴对象1标题f1包含一个类型的对象的表面。坐标轴对象2标题插入f1表面包含一个类型的对象。坐标轴对象3标题f2包含一个类型的对象的表面。坐标轴对象4标题插入f2表面包含一个类型的对象。5轴对象与标题f3表面包含一个类型的对象。坐标轴对象6与标题插入f3表面包含一个类型的对象。

更多关于

全部展开

提示

  • 它是更快地评估griddedInterpolant对象F在许多不同的查询点比计算插入单独使用interp1,interp2,interp3,或interpn。例如:

    %快速创建多次interpolant F和评估F = griddedInterpolant (X1, X2, V) v1 = F (Xq1) v2 = F (Xq2)%计算分别插入使用interp2慢v1 = interp2 (X1, X2, V, Xq1) v2 = interp2 (X1, X2, V, Xq2)

扩展功能

介绍了R2011b