我有两个样条线,我用(稍微修改一下)生成了一条曲线,getcurve()
它们代表一个XY
和XZ
一个轨迹。我想将两条样条曲线组合在一起以生成 3d 图,通过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
如下所示:
我不明白为什么我不能根据这个样条插值。看起来没什么特别的。您可以通过执行以下操作自己重建此样条曲线(您需要曲线拟合工具箱):
>> 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
会丢失,但没关系。