主要内容

栅格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必须是独一无二的。

数据类型:单身的|双倍的

示例值,指定为向量,矩阵或多维数组。元素V.是对应于样本点的值XG.ydF4y2Ba

  • 使用单一的值插入,XG.ydF4y2BaV.必须是相同长度的载体。

  • 要使用多组值进行插入,V.可以是与额外尺寸相比的阵列XG.ydF4y2Ba。第一个维度的大小V.必须匹配样本点数XG.ydF4y2Ba,和每个列V.定义单独的1-D值集。例如,如果XG.ydF4y2Ba是一个包含10个元素的列向量,可以指定V.作为一个10×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×100值组来将值指定为大小为100×100-100-of-4的数组来插入。

数据类型:单身的|双倍的

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

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

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

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

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

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

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

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

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

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

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

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

  • 每个维度至少需要4分

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

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

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

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

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

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

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

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

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

特性

展开全部

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

数据类型:细胞

采样点的功能值,指定为与网格点关联的值数组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,'。') 传奇('样本点''内插价值'

图包含轴。轴包含2个类型的型号。这些对象表示采样点,内插值。

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

创建和绘制表示该功能的三维数据集 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'

图包含轴。轴包含2个类型的型号。这些对象代表v,VQ。

此时使用PCHIP外推方法查询同一点的内括号。

F.ExtrapolationMethod ='pchip';图Vq = f(xq);绘图(x,v,'o',xq,vq,'-b');传奇 ('v''VQ'

图包含轴。轴包含2个类型的型号。这些对象代表v,VQ。

采用栅格internallant.在同一查询点内插入三组不同的值集。

创建一个样本点网格 - 5. ≤. X ≤. 5. - 3. ≤. y ≤. 3.

gx = -5:5;gy = -3:3;[x,y] = ndgrid(gx,gy);

在查询点评估三个不同的功能,然后将值连接到3-D阵列中。的大小V.Xy栅格在前两个维度中,但额外尺寸的大小反映了与每个采样点相关的值的数量(在这种情况下,三个)。

f1 = x. ^ 2 + y. ^ 2;f2 = x. ^ 3 + y. ^ 3;f3 = x。^ 4 + y. ^ 4;v = CAT(3,F1,F2,F3);

使用采样点和关联值创建Interpolant。

f =网格化interpolant(x,y,v);

与采样点相比,使用更精细的网格尺寸创建查询点网格。

QX = -5:0.4:5;QY = -3:0.4:3;[xq,yq] = ndgrid(qx,qy);

在查询点处插入所有三组值。

VQ = F(XQ,YQ);

将原始数据与插值结果进行比较。

TileDlayout(3,2)NextTile Surf(X,Y,F1)标题('f1')NextTile Surf(XQ,YQ,VQ(:,:,1))标题('内插F1')NextDile Surf(x,y,f2)标题('f2')NextTile Surf(XQ,YQ,VQ(:,:,2))标题('内插F2')NextDile Surf(X,Y,F3)标题('f3')NextDile Surf(XQ,YQ,VQ(:,:,3))标题('内插F3'

图包含6个轴。带标题F1的轴1包含类型表面的物体。具有标题插值F1的轴2包含类型表面的物体。具有标题F2的轴3包含类型表面的物体。具有标题内插F2的轴4包含类型表面的物体。具有标题F3的轴5包含类型表面的物体。具有标题内插F3的轴6包含类型表面的物体。

更多关于

展开全部

提示

  • 评估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中介绍