私は軌道をgetcurve()
表す(少し修正した) 2 つのスプラインを生成しました。を介して、2 つのスプラインを組み合わせて 3D プロットを生成したいと思います。プロットに描いた線のandを出力するように修正しました。XY
XZ
plot3()
getcurve()
XData
YData
XY
スプラインはグラフィカルに生成されるため、要素の数は と の間で必ずしも同じではありませんXZ
。仮定しlength(XY)>length(XZ)
ます。XZ_2
と同じ長さXY
で同じ x 値を持つ新しいベクトルを作成しようとしていますXY
。
私の最初のアイデアは、次のように補間することでした。
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
は次のようになります。
このスプラインを補間できない理由がわかりません。特別なものではないようです。次のようにして、このスプラインを自分で再構築できます (Curve Fitting Toolbox が必要です)。
>> 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
が失われることは承知していますが、それは問題ありません。