2

我有 3D 空间。我知道例如N这个空间中的点(x1,y1,z1)(x2,y2,z2)...,(xn,yn,zn)。我想插入点,这与此不同。我怎样才能在 Matlab 中做到这一点?

4

2 回答 2

3

interp3可以帮助你。是文档。

于 2012-05-15T20:52:51.000 回答
2

与往常一样,您的单行查询仍有未回答的问题。

如果数据的形式存在函数关系z(x,y),(或y(x,z)) ,x(y,z)那么您可能可以使用其中一种插值工具。因此,假设您有位于平面格子上的数据,因此在该格子的每个点上都有(x,y)一些值。z在这种情况下,您可以使用interp2.

或者,如果数据是分散的,但有一些z(x,y)你没有的单值函数关系,但它是一些连续函数。无限一阶导数在这里也是一个问题。在这种情况下,假设您的数据至少填充了(x,y)平面中的某个凸域,您仍然可以插值z. 为此,请使用 griddata 或 TriScatteredInterp。或者你可以使用我自己的gridfit工具,在文件交换中可以找到。

接下来,你描述数据的方式,我一点也不肯定你有上述形式之一。例如,如果您的数据位于此 3D 域中的某个弯曲路径上,并且您希望沿该弯曲弧线插入点,可以使用我的interparc工具完成,该工具也可以在文件交换中找到。

当人们谈论像这样的空间集的插值时,人们似乎经常遇到的最后一个情况就是一个一般表面,他们希望构建一个整齐的插值、平滑的表面。它可能是像球体表面一样简单的东西,也可能是更复杂的东西。(这些事情从来都不是简单的。)为此,如果它是一个封闭的凸面,您也许可以使用凸包来近似某些东西。更复杂的表面可能需要像 CRUST 这样的工具,尽管我没有可以提供给你的实现。如果您需要,Google 会在那里为您提供帮助。

所有这一切的重点是,您如何插入数据取决于数据的形式、代表的内容以及您将插入的关系的形状。

于 2012-05-15T23:36:02.243 回答