griddedInterpolant

网格数据插值

描述

采用griddedInterpolant对一个1-d,2-d,3-d,或N-d执行内插网格数据组。griddedInterpolant返回插值F对于给定的数据集。您可以评估F在一组查询点,如(XQ,YQ)在2-d,以产生内插的值VQ = F(XQ,YQ)

采用scatteredInterpolant进行插补散乱数据

创建

描述

F= griddedInterpolant创建一个空的网格数据插值对象。

F= griddedInterpolant(XGÿdF4y2Bav从采样点的向量创建一个1-d插值XGÿdF4y2Ba和对应的值v

F= griddedInterpolant(X1X2,...,XNV创建一个2-d,3-d,或N-d使用插值满格的作为一组通过采样点ñ维数组X1,X2,...,XN。该V阵列包含在点位置相关联的样本值X1,X2,...,XN。每个阵列X1,X2,...,XN必须大小相同V

F= griddedInterpolant(V使用默认网格创建插值。当您使用此语法,griddedInterpolant网格定义为一组点,其间距为1和范围为[1大小(V,I)] 在里面一世第N维。当你想节省内存,并且不关心两点之间的绝对距离此语法。

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

F= griddedInterpolant(___方法指定的替代的内插方法:“线性”“最近”'下一个''以前''pchip''立方体''makima', 要么“花”。您可以指定方法如前面任何语法的最后一个输入参数。

F= griddedInterpolant(___方法ExtrapolationMethod同时指定插值和外推法。griddedInterpolant使用ExtrapolationMethod估计值时,你的查询点落在你的采样点外域。

输入参数

展开全部

采样点,指定为矢量。XGÿdF4y2Bav必须是相同的大小。在采样点XGÿdF4y2Ba必须是唯一的。

数据类型:|

样本值,指定为矢量。XGÿdF4y2Bav必须是相同的大小。

数据类型:|

在满格形式的采样点,指定为独立ñ维数组。采样点必须是唯一的和分类。您可以创建数组X1,X2,...,XN使用ndgrid功能。这些阵列都具有相同的尺寸,而且每一个的尺寸与相同V

数据类型:|

在网格向量形式的样本点,指定为网格向量的单元阵列{XG1,XG2,...,XGN}。采样点必须是唯一的和分类。载体必须指定一个网格,其大小与相同V。换一种说法,大小(V)= [长度(XG1)长度(XG2),...,长度(XGN)]。使用这种形式的替代满格,以节省内存时网格是非常大的。

数据类型:|

样本值,指定为一个数组。的元素V是这些值对应于采样点。的大小V必须是采样点的满格的大小。

  • 如果指定的采样点作为由N-d阵列,则满格V必须是尺寸中的任何一个相同X1,X2,...,XN

  • 如果指定了采样点的网格载体,然后大小(V)= [长度(XG1)长度(XG2)...长度(XGN)]

数据类型:|

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

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

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

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

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

'下一个' 下一个邻居内插(1-d只)。在查询点的插补值是在下一采样网格点的值。 间断
  • 需要至少2分

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

'以前' 在前邻居内插(1-d只)。在查询点内插的值是在先前采样网格点的值。 间断
  • 需要至少2分

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

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

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

'立方体' 立方插值。在查询点内插的值在每个相应维度相邻网格点是基于三次插值的值的。内插基于三次卷积。 C1
  • 格必须具有均匀的间隔,尽管在每个维度的间隔不必是相同的

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

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

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

  • 产生比起伏少“花”,但不压扁一样进取'pchip'

  • 计算比更贵'pchip'的,但典型地小于“花”

  • 内存要求类似于那些“花”

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

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

外推法,指定为“线性”“最近”'下一个''以前''pchip''立方体'“花”, 要么'makima'。此外,你可以指定'没有'如果你希望你的网格,以回报外域查询为NaN值。

如果省略ExtrapolationMethod,默认为您指定的值方法。如果忽略这两个方法ExtrapolationMethod参数,这两个值默认为“线性”

属性

展开全部

格矢量,指定为单元阵列{XG1,XG2,...,XGN}。这些载体指定中的值的格子点(位置)。网格点必须是唯一的。

的性质的指数型编辑F不支持。万博1manbetx相反,完全取代GridVectors要么数组作为必要的。

数据类型:细胞

在采样点的函数值,指定为与网格点相关联的值的阵列GridVectors

的性质的指数型编辑F不支持。万博1manbetx相反,完全取代GridVectors要么数组作为必要的。

数据类型:|

插值方法,指定为字符向量。方法可:“线性”“最近”'下一个''以前''pchip''立方体'“花”, 要么'makima'。看到方法对这些方法的描述。

数据类型:烧焦

外推法,指定为字符向量。ExtrapolationMethod可:“线性”“最近”'下一个''以前''pchip''立方体'“花”'makima', 要么'没有'。的价值'没有'表明推断被禁用。默认值是值方法

数据类型:烧焦

用法

采用griddedInterpolant创建插值F。然后你就可以评估F在使用下列任何语法的具体点:

VQ = F(Xq的)
VQ = F(XQ1,XQ2,...,xqn)
VQ = F(XQ1,XQ2,...,Xqn)
VQ = F({xgq1,xgq2,...,xgqn})

  • VQ = F(Xq的)指定矩阵中的查询点XQ。每行XQ包含查询点的坐标。

  • VQ = F(XQ1,XQ2,...,xqn)指定查询点XQ1,XQ2,...,xqn作为长度的列向量代表点分散在ñ维空间。

  • VQ = F(XQ1,XQ2,...,Xqn)指定使用查询点ñ维数组XQ1,XQ2,...,Xqn,其定义一个满格点。

  • VQ = F({xgq1,xgq2,...,xgqn})指定查询点作为网格矢量。当你想查询的大型网格点使用该语法来节省内存。

例子

全部收缩

采用griddedInterpolant内插的1 d数据集。

创建散射采样点的向量v。在0和20之间的随机1-d的位置的点被采样。

X =排序(20 *兰特(100,1));V = BESSELJ(0,x)的;

创建的数据网格化插值对象。默认,griddedInterpolant使用“线性”插值方法。

F = griddedInterpolant(X,V)
F = griddedInterpolant与属性:GridVectors:{[双100X1]}值:[100X1双]方法: '线性' ExtrapolationMethod: '线性'

查询插值F在0和20剧情内插结果之间500个均匀间隔的点(XQ,VQ)对原始数据的顶部(X,V)

XQ = linspace(0,20,500);VQ = F(XQ);图(X,V,'RO')保持图(XQ,VQ,'')图例(“采样点”“内插值”

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

创建并绘制表示所述功能的3-d的数据集 ž XGÿdF4y2Ba YGÿdF4y2Ba = XGÿdF4y2Ba 2 + YGÿdF4y2Ba 2 XGÿdF4y2Ba 2 + YGÿdF4y2Ba 2 在范围[-5,5]的一组网格的采样点的评价。

[X,Y] = ndgrid(-5:0.8:5);Z = SIN(。的x ^ 2 + Y ^ 2)./(X ^ 2 + Y ^ 2);冲浪(X,Y,Z)

创建的数据网格化插值对象。

F = griddedInterpolant(X,Y,Z);

用细网孔来查询插值,提高了分辨率。

[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)

使用默认格在一组采样点进行快速插值。默认网格使用单元间隔的点,所以这个内插是有用的,当确切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] [1x14双]}值:[14×14双]方法: '线性' ExtrapolationMethod: '线性'

查询的插值得出结果。

[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 XGÿdF4y2Ba YGÿdF4y2Ba = XGÿdF4y2Ba 2 + YGÿdF4y2Ba 2 在网格点。

V = X. ^ 2 + Y ^ 2;

创建插值,指定三次插值。

F = griddedInterpolant(X,Y,V,'立方体');

定义的查询点与满格0.5间距和评估在这些点的插值。然后绘制出结果。

[Xq的,Y染色体长臂] = ndgrid(1:0.5:10,1:0.5:10);VQ = F(Xq的,Y染色体长臂);目(Xq的,YQ VQ);

查询外域的插值的比较​​结果F使用'pchip'“最近”外推法。

创建插值,指定'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: '最近的'

查询插值,并且包括外域点F

XQ = 0:0.1:6;VQ = F(XQ);图图(X,V,'O',XQ,VQ,'-b');传说('V''VQ'

使用pchip外推法再次查询在相同的点的插值,这一次。

F.ExtrapolationMethod ='pchip';图VQ = F(XQ);图(X,V,'O',XQ,VQ,'-b');传说('V''VQ'

更多关于

展开全部

提示

  • 这是更快地评估griddedInterpolant宾语F在许多套不同的查询点,比它是分别计算使用插值interp1interp2interp3, 要么interpn。例如:

    %快速创建插值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