我有兩個樣條線,我已經生成了(修改的一部分)getcurve()
,它們代表了軌跡的XY
和XZ
。我想通過plot3()
將兩個樣條線結合在一起生成一個3d圖。我修改了getcurve()
以輸出繪製在繪圖上的線的XData
和YData
。如何「拉伸」(插入)數組,但保持其基礎數據完好?
由於樣條線是以圖形方式生成的,因此XY
和XZ
之間的元素數量不一定相同。假設length(XY)>length(XZ)
。我正在嘗試創建一個新的矢量XZ_2
,其長度與XY
的長度相同,並具有與XY
相同的x值。
我的第一個想法是插值如下:
XZ_2(:,2) = interp1(XZ(:,1), XZ(:,2), XY(:,1))
,但我得到一個錯誤:
Error using griddedInterpolant
The grid vectors are not strictly monotonic increasing.
Error in interp1 (line 191)
F = griddedInterpolant(X,V,method);
花鍵XZ
看起來是這樣的:
我不明白爲什麼我不能插入給定的這個樣條。它看起來不像什麼特別的東西。您可以通過重建做這個樣條自己以下(你需要的曲線擬合工具箱):
>> xz = [0.0288 0.0518 0.1071 0.1763 0.2707 0.3583 0.4988 0.5864 0.7339 0.8191 0.9182 0.9781
1.8070 1.3626 0.9766 0.4152 -0.0643 -0.3684 -0.9181 -1.1637 -1.4795 -1.6667 -1.8070 -1.9474];
>> fnplt(cscvn(xz));
有沒有一種方法來「調整」 XZ
使用相同的x值作爲XY
?我意識到當我這樣做時,關於XZ
的一些信息將會丟失,但沒關係。
難道你不能跳過這一點,並使用interp2直接進入3D嗎? – Dan 2013-05-09 21:41:48
我可以嗎?我以爲'interp2'讓你在表面上插值。我不太明白我將如何使用它來生成曲線而不是曲面。 – 2013-05-09 22:25:12
對不起,我雖然想將兩條曲線組合起來製作曲面 – Dan 2013-05-09 22:28:07