Main Content

TriScatteredInterp

(不推荐)对散点数据插值

不推荐使用 TriScatteredInterp。请改用 scatteredInterpolant

说明

TriScatteredInterp 用于对二维或三维空间中的散点数据集执行插值。对于由位置 X 及对应值 V 定义的散点数据集,可以使用 X 的德劳内三角剖分对其执行插值。这将会生成 V = F(X) 形式的曲面。可以使用 QV = F(QX) 在任意查询位置 QX 计算曲面,其中 QX 位于 X 的凸包内。插值 F 始终穿过样本定义的数据点。

创建对象

描述

F = TriScatteredInterp 创建一个空的散点数据插值。

F = TriScatteredInterp(Q,V) 创建一个插值,该插值可使 V = F(Q) 形式的曲面与 (Q, V) 中的散点数据相拟合。Q 是一个大小为 mpts×ndim 的矩阵,其中 mpts 为点数目,ndim 为这些点所在空间的维度(ndim 为 2 或 3)。列向量 V 定义 Q 处的值,其中 V 的长度等于 mpts

示例

当用于二维和三维环境时,F = TriScatteredInterp(X,Y,V)F = TriScatteredInterp(X,Y,Z,V) 以替代的列向量格式指定数据点位置。

F = TriScatteredInterp(DT,V) 使用指定的 DelaunayTri 对象 DT 作为计算插值的基础。DT 是散点数据位置 DT.X 的德劳内三角剖分。矩阵 DT.X 的大小为 mpts×ndim,其中 mpts 为点数目,ndim 为这些点所在空间的维度 (2 <= ndim <= 3)。V 是一个定义 DT.X 处的值的列向量,其中 V 的长度等于 mpts

F = TriScatteredInterp(___,method) 指定用于数据插值的插值方法 method。您可以使用以前的任何输入参量组合。

输入参量

全部展开

散点数据点,指定为矩阵。Q 的大小为 mpts×ndim,其中 mpts 为点数目,ndim 为这些点所在空间的维度。

散点数据点,指定为单独的列向量。对于二维数据,指定 (X, Y);对于三维数据,指定 (X, Y, Z)。

采样点值,指定为列向量。V 定义在采样数据点处的值,其中 V 的长度等于 mpts

德劳内三角剖分表示,指定为 DelaunayTri 对象。

插值方法,指定为下列值之一:

描述
linear线性插值(默认值)
natural自然邻点插值
nearest最近邻点插值

属性

全部展开

散点数据点,指定为矩阵。X 的维度为 mpts×ndim,其中 mpts 是数据点的数目,ndim 是点所在空间的维度 (2 <= ndim <= 3)。

如果使用 X,YX,Y,Z 坐标的列向量构造插值,则数据会合并到单个矩阵 X

采样点值,指定为列向量。V 是长度为 mpts 的向量,其中 mpts 是散点数据点的数量。

插值方法,指定为下列值之一:

描述
linear线性插值(默认值)
natural自然邻点插值
nearest最近邻点插值

对象函数

要计算插值,请用 Monge 格式 Vq = F(Xq)Vq = F(Xq,Yq)Vq = F(Xq,Yq,Zq) 来表示语句,其中 Vq 为查询位置处的插值,XqYqZq 为点位置向量。

示例

全部折叠

创建一个二维随机散点数据集。

rng default
x = rand(100,1)*4-2;
y = rand(100,1)*4-2;
z = x.*exp(-x.^2-y.^2);

为数据构造一个插值。

F = TriScatteredInterp(x,y,z);

计算在查询点位置 (qx,qy) 的插值。这些位置的对应插值在 qz 中返回。

ti = -2:.15:2;
[qx,qy] = meshgrid(ti,ti);
qz = F(qx,qy);

绘制数据和插值曲面。

mesh(qx,qy,qz)
hold on
plot3(x,y,z,'o')

详细信息

全部展开

扩展功能

版本历史记录

在 R2009a 中推出