栅格internallant.

网格数据插值

描述

使用栅格internallant.在1-D,2-D,3-D或N-D上执行插值网格数据设置。栅格internallant.返回interpolant.F.对于给定的数据集。你可以评估F.在一组查询点,如(XQ,YQ)在2-D中,产生内插值VQ = F(XQ,YQ)

使用散开的interpolant.执行插值分散的数据

创造

描述

F.=格拉特interpolant.创建一个空网格数据插值对象。

示例

F.=格拉特interpolant(XG.ydF4y2BaV.从样本点的矢量创建1-D插值XG.ydF4y2Ba和相应的价值观V.

示例

F.=格拉特interpolant(X1X2,......,XN.V.使用a创建2-d,3-d或n-d立体间隔全网格样本点作为一组传递N- 阵容阵列x1,x2,...,xn。当V.数组包含与点位置关联的示例值x1,x2,...,xn。每个阵列x1,x2,...,xn必须与之相同V.

示例

F.=格拉特interpolant(V.使用默认网格来创建内插。使用此语法时,栅格internallant.将网格定义为间距的一组点1范围是[1尺寸(v,i)]在这一点维度。当您想要保护内存时,请使用此语法,并且不关心点之间的绝对距离。

示例

F.=格拉特interpolant(Gridvecs.V.指定单元格数组Gridvecs.那个包含N网格向量描述一个N- 样品点的二维网格。当要使用特定网格并保存内存时,请使用此语法。

示例

F.=格拉特interpolant(___方法指定备用插值方法:'线性''最近''下一个''上一个''pchip''立方''makima'或者'样条曲线'。您可以指定方法作为任何先前语法中的最后一个输入参数。

示例

F.=格拉特interpolant(___方法外推方法指定插值和外推方法。栅格internallant.使用外推方法估计当查询点落在样本点的域之外时的值。

输入参数

展开所有

样本点,指定为向量。XG.ydF4y2BaV.必须是相同的大小。样本点XG.ydF4y2Ba必须是独一无二的。

数据类型:单身|双人间

示例值,指定为向量。XG.ydF4y2BaV.必须是相同的大小。

数据类型:单身|双人间

完整网格形式的样本点,指定为单独的N- 统计数阵列。样本点必须是唯一的并排序。您可以创建数组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)]

数据类型:单身|双人间

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

方法 描述 连续性 评论
'线性'(默认) 线性插值。查询点处的插值值基于每个相应维度的相邻网格点处的值的线性插值。 C.0.
  • 每个维度需要至少2个网格点

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

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

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

'下一个' 下一个邻居插值(仅限1-D)。查询点处的插值值是下一个示例网格点处的值。 不连续
  • 至少需要2分

  • 相同的内存要求和计算时间'最近'

'上一个' 以前的邻居插值(仅限1-D)。查询点处的插值值是先前示例网格点处的值。 不连续
  • 至少需要2分

  • 相同的内存要求和计算时间'最近'

'pchip' 形状保留分段立方插值(仅限1-D)。查询点处的内插值基于相邻网格点处的值的形状保留的分段立方插值。 C.1
  • 至少需要4分

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

'立方' 立方插值。查询点处的插值值基于每个相应维度的相邻网格点处的值的立方插值。插值基于立方卷积。 C.1
  • 网格必须具有均匀的间隔,尽管每个维度的间距不必是相同的

  • 每个维度至少需要4分

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

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

  • 产生的起伏少于'样条曲线',但不会像'pchip'

  • 计算比贵重'pchip',但通常小于'样条曲线'

  • 内存要求与那些类似的'样条曲线'

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

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

推断方法,指定为'线性''最近''下一个''上一个''pchip''立方''样条曲线'或者'makima'。此外,您可以指定'没有'如果您希望在网格域外查询以返回价值观。

如果你省略外推方法,默认值是您指定的值方法。如果你省略了两者方法外推方法参数,两个值默认为'线性'

属性

展开所有

网格向量,指定为单元数组{xg1,xg2,...,xgn}。这些向量指定了值的网格点(位置)价值。网格点必须是唯一的。

基于索引的性质的编辑F.不受支持。金宝app相反,完全取代GridVectors.或者价值阵列必要时。

数据类型:细胞

采样点的功能值,指定为与网格点关联的值数组GridVectors.

基于索引的性质的编辑F.不受支持。金宝app相反,完全取代GridVectors.或者价值阵列必要时。

数据类型:单身|双人间

插值方法,指定为字符向量。方法可以是:'线性''最近''下一个''上一个''pchip''立方''样条曲线'或者'makima'。看方法用于描述这些方法。

数据类型:char

推断方法,指定为字符向量。外推方法可以是:'线性''最近''下一个''上一个''pchip''立方''样条曲线''makima'或者'没有'。价值'没有'表示禁用外推。默认值是值的值方法

数据类型:char

使用

使用栅格internallant.创建interpolant.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作为长度的柱矢量m代表m点分散在N- 空间。

  • VQ = F(XQ1,XQ2,...,XQN)使用使用的查询点N- 阵容阵列XQ1,XQ2,...,XQN,定义一个全网格积分。

  • Vq = f({xgq1,xgq2,...,xgqn})指定查询点作为网格向量。使用此语法在要查询的大网格时要保存内存。

例子

崩溃

使用栅格internallant.要插入1-D数据集。

创建分散的样本点矢量V.。点在0到20之间的随机1-D位置进行采样。

x = sort(20 * rand(100,1));v = besselj(0,x);

为数据创建一个网格介绍的Interpolant对象。默认情况下,栅格internallant.用来'线性'插值方法。

f = griddedinterpolant(x,v)
f =具有属性的网格化interpolant:GridVectors:{[100x1 double]}值:[100x1 double]方法:'线性'外推Method:'linear'

查询Interpolant.F.在500个均匀间隔点,0到20之间。绘制内插结果(XQ,VQ)在原始数据之上(x,v)

xq = linspace(0,20,500);VQ = F(XQ);绘图(x,v,'ro'抱紧绘图(XQ,VQ,'。')传奇('样本点''内插价值'

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

创建和绘制表示该功能的三维数据集 Z. XG.ydF4y2Ba yg.ydF4y2Ba = 罪恶 XG.ydF4y2Ba 2 + yg.ydF4y2Ba 2 XG.ydF4y2Ba 2 + yg.ydF4y2Ba 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 =网格化interpolant(x,y,z);

使用更精细的网格查询插值并提高分辨率。

[xq,yq] = ndgrid(-5:0.1:5);VQ = F(XQ,YQ);冲浪(XQ,YQ,VQ)

在有很多样本点或查询点的情况下,以及内存使用成为关注的位置,可以使用网格向量提高内存使用情况。

  • 当您指定网格向量而不是使用ndgrid.创建完整网格,栅格internallant.避免形成完整的查询网格以执行计算。

  • 当您传递网格载体时,它们通常将它们作为单元格中的单元格分组,{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 =网格化interpolant(v)
f =具有属性的网格化interpolant:GridVectors:{[1 2 3 4 5 6 7 8 9 10 11 12 13 14]值:[14x14双]方法:'Linear'外推Method:'linear'

查询插值并绘制结果。

[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.ydF4y2Ba yg.ydF4y2Ba = XG.ydF4y2Ba 2 + yg.ydF4y2Ba 2 在网格点。

v = x. ^ 2 + y. ^ 2;

创建Interpolant,指定立方插值。

f = griddedinterpolant(x,y,v,'立方');

定义具有的完整网格0.5间隔和评估这些点的内嵌。然后绘制结果。

[xq,yq] = ndgrid(1:0.5:10,1:0.5:10);VQ = F(XQ,YQ);网格(XQ,YQ,VQ);

比较查询域外插值的结果F.使用'pchip''最近'推断方法。

创建Interpolant,指定'pchip'作为插值方法和'最近'作为外推方法。

x = [1 2 3 4 5];v = [12 16 31 10 6];f = griddedinterpolant(x,v,'pchip''最近'
f =具有属性的网格接事:GridVectors:{[1 2 3 4 5]}值:[12 16 31 10 6]方法:'Pchip'外推方法:'最近'

查询Interpolant,并包括域外的点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'

更多关于

展开所有

提示

  • 评估a更快栅格internallant.对象F.在许多不同的查询点集中,它是单独计算插值interp1.interp2.interp3.或者interpn.。例如:

    %快速创建Interpolant F并多次评估f =网格化interpolant(x1,x2,v)v1 = f(xq1)v2 = f(xq2)百分比慢,以分别使用Interp2计算插值v1 = interp2(x1,x2,v,xq1)v2 = interp2(x1,x2,v,xq2)
在R2011B中介绍