在非均匀表面上的数据插值

时间:2013-07-06 14:57:01

标签: matlab math interpolation

在我的项目中,我处理大数据表面。

在某一点上,我有一条数据线,我需要线的点的值。

网格是非均匀的,它不是来自n:m的固定步骤,也不是任何东西。

让我们说清楚! 在图中可以看到我的数据的2D提取。每个点还具有其他3个数据信息。我用y = ax + b的形式定义了一条任意红线。 a和b是已知的。

如何定义线中不仅有x和y坐标(直线)的50个点,还包括它周围每个点的3个数据信息的插值。

enter image description here

我知道这不是一个简单的问题,但我似乎无法向前迈进一步。

PD:意识到我不想为我编写代码,而是想要如何实现我的目标。

2 个答案:

答案 0 :(得分:1)

你可以使用像triScatteredInterp这样的工具,它将对二维域进行三角测量,然后在你的线上插入一个点列表。 Griddata也是一种选择。

我有一个像这样的问题的工具箱(当然。)它允许我在(x,y)平面上构建非凸域的三角剖分。然后它可以通过该表面形成一个完全通用的切片,也可以在z中进行插值。结果将是1-流形,在这种情况下是沿(x,y,z)中的该路径的分段线性函数。虽然这些工具没有在文件交换中发布,但是对于愿意花时间学习使用它们的人来说,它们是可用的。

如果你描述的表面是3-d中完全一般的表面,那可能相当复杂,那么你可能需要一个基于CRUST的工具来定义表面三角剖分。这些也可以在网上找到。一旦三角测量可用,我的工具就可以用来切片。 (对不起,我从来没有完成那件作品。)

答案 1 :(得分:0)

我所做的是在裂缝线中定义几个点,然后在四边形中使用inpoligon matlab函数(不是最快的方式,但不到2秒)来为它们中的每个点进行解密。

然后我使用x,y和Z或其他数据在使用的四边形中创建了一个三角形平面,实现了数据之间的线性插值。

最后我把所有的点都拿出来了。