文档

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

griddatan

插入 N 维散点数据

语法

vq = griddatan(x,v,xq)
vq = griddatan(x,v,xq,method)
vq = griddatan(x,v,xq,method,options)

说明

示例

vq = griddatan(x,v,xq) 使 v = f(x) 形式的超曲面与值为 v 的样本点 x 拟合。griddatan 函数在 xq 指定的查询点对曲面进行插值并返回插入的值 vq。曲面始终穿过 xv 定义的数据点。

示例

vq = griddatan(x,v,xq,method) 指定用于计算 vq 的插值方法。选项为 'linear''nearest'

vq = griddatan(x,v,xq,method,options) 指定要通过 delaunayn 在 Qhull 中使用的字符向量元胞数组 options

示例

全部折叠

插入四维散点数据集,然后可视化插值数据的三维等值面。

创建一个由样本点组成的散点集。

X = 2*gallery('uniformdata',[5000 3],0)-1;
Y = sum(X.^2,2);

创建 x、y 和 z 网格作为三维查询点集,然后在这些点处插入散点数据。

d = -0.8:0.05:0.8;
[y0,x0,z0] = ndgrid(d,d,d);
XI = [x0(:) y0(:) z0(:)];
YI = griddatan(X,Y,XI);

由于很难可视化四维数据集,因此使用 0.8 处的等值面可视化插值结果:

YI = reshape(YI, size(x0));
p = patch(isosurface(x0,y0,z0,YI,0.8));
isonormals(x0,y0,z0,YI,p)
p.FaceColor = 'blue';
p.EdgeColor = 'none';
view(3)
axis equal
camlight
lighting phong

对三维数据集使用最近邻点插值。

创建一个样本三维数据集。矩阵 X 包含观测数据的 xyz 位置,而 v 包含(随机生成的)观测数据。这种数据集可以表示,比如说,海水中这些位置的氧气水平。

X = [rand(100,1) rand(100,1) rand(100,1)];
v = rand(100,1);

使用最近邻点插值求基础函数在某些查询点的近似值。

[xx,yy,zz] = meshgrid(0.2:0.025:0.8);
xq = [xx(:) yy(:) zz(:)];
vq = griddatan(X,v,xq,'nearest');

在样本点位置的上方绘制结果的切片。

vq = reshape(vq,size(xx));
plot3(X(:,1),X(:,2),X(:,3),'r*')
hold on
slice(xx,yy,zz,vq,[0.2 0.4 0.6 0.8],0.5,0.5)

输入参数

全部折叠

样本点坐标,指定为矩阵。将 x 指定为 m×n 矩阵,以表示 n 维空间中的 m 个点。样本点必须唯一。

数据类型: single | double

样本值,指定为向量。将 v 指定为长度为 m 的向量,使 x 中指定的每个样本点(行)对应一个值。

如果 v 包含复数,则 griddatan 将分别插入实部和虚部。

数据类型: single | double
复数支持:

查询点,指定为矩阵。将 xq 指定为 p×n 矩阵,以表示 n 维空间中的 p 个点。xq 通常基于 ndgrid 生成的均匀网格而创建。

数据类型: single | double

插值方法,指定为下表中的值之一。这些方法都基于输入数据的 Delaunay 三角剖分。

选项说明连续性
'linear'(默认值)基于三角剖分的线性插值。C0
'nearest'最近邻点插值。不连续

如果 method[],则 griddatan 使用默认的 'linear' 方法。

数据类型: char

Qhull 特定的选项,指定为元胞数组。要查看支持的选项列表,请参阅 Qhull 快速参考

如果 options[],则 griddatan 使用默认选项:

  • {'Qt' 'Qbb' 'Qc'}(对于二维和三维插值)。

  • {'Qt' 'Qbb' 'Qc' 'Qx'}(对于四维及更高维度的插值)。

如果 options{''},则 griddatan 不使用任何选项,甚至也不使用默认值。

数据类型: cell

输出参数

全部折叠

插入的值,以长度为 p 的向量形式返回。在 vq 中插入的值对应于 xq 中的查询点(行)。

提示

  • 在高于六维的维度中使用 griddatan 进行插值是不现实的,因为基本三角剖分所需要的内存随维数的增加呈指数级增长。

另请参阅

| |

在 R2006a 之前推出

此主题对您有帮助吗?