私は軌道をgetcurve()表す(少し修正した) 2 つのスプラインを生成しました。を介して、2 つのスプラインを組み合わせて 3D プロットを生成したいと思います。プロットに描いた線のandを出力するように修正しました。XYXZplot3()getcurve()XDataYData
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が失われることは承知していますが、それは問題ありません。