2012-05-15 88 views
2

我有3D空間。我知道例如N點在這個空間(x1,y1,z1),(x2,y2,z2) ...,(xn,yn,zn)。我想要插入點,這是不同的。我如何在Matlab中做到這一點?如何在3D空間中插入點?

回答

3

interp3可能會幫到你。 Here是文檔。

+1

不是如果它是分散的數據,這聽起來像。 – 2012-05-15 22:36:20

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會幫助你,如果那是你需要的。

所有這一切的關鍵在於,如何插入數據取決於數據的表現形式以及您要插入的關係的形狀。