如何在3D空间中插入点?

时间:2012-05-15 20:16:25

标签: matlab interpolation

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

2 个答案:

答案 0 :(得分:3)

interp3可能会对您有所帮助。 Here是文档。

答案 1 :(得分: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会帮助您。

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