我在3d中有一组形成表面的点。我可以通过以下方式将三次样条拟合到该表面上:
f1 = fit([x y], z, 'cubicinterp');
由此,很容易通过计算导数进行插值甚至计算表面法线。但是,我需要计算傅立叶变换,为此,我需要访问样条系数。 fit()
函数返回拟合结果,但不包含此信息(与spline()
函数相反,请参见下文)。我想强调一点,我想使用样条曲线拟合给我的多项式来计算解析傅里叶变换,然后不插值样条曲线拟合,然后计算离散傅里叶变换。
另一方面,如果我有2d坐标,则可以使用spline()
,如下所示:
f1 = spline(x,y)
其中f1.breaks
和f1.coefs
给了我所需的信息。但是,此功能没有3d版本。有没有办法用Matlab内置的功能来做到这一点?还是我必须编写自己的样条拟合函数(这会比较慢,因为Matlab函数通常在后台并行化)?