【问题标题】:Interpolation and derivative of 3D data in MATLAB (or Python or C)在 MATLAB(或 Python 或 C)中对 3D 数据进行插值和求导
【发布时间】:2013-01-29 05:38:18
【问题描述】:

我有三个 3D 矩阵 X、Y 和 Z,它们在一些 3D 空间上定义了一个相同大小的矩阵 V。矩阵是规则间隔的。现在,我正在尝试执行插值并计算 V 的空间偏导数,即对于每个像素,计算 V 如何随 x、y 和 z 变化。我读过用样条插值和计算导数会产生良好的结果。例如,我以前使用过 splinefit 和 ppdiff (http://www.mathworks.com/matlabcentral/fileexchange/13812-splinefit)

如何将样条曲线用于我拥有的数据集?是否有一些代码最好在 MATLAB 中可用(Python 和 C 也可以)来执行这些计算?

假设我只想要由 X、Y 和 Z 定义的采样位置的导数,我可以对每个维度进行 1D 样条近似并以这种方式计算偏导数吗?也许这应该是数学交流的问题。这可能需要一段时间,但它应该可以正常工作吗?

感谢您的帮助!

【问题讨论】:

    标签: python matlab interpolation spline derivative


    【解决方案1】:

    尝试使用interp3,matlab 的 3-D 数据插值函数,支持“样条”以及其他方法。更多信息the documentation...

    【讨论】:

    • 我以前用过它,但它对区分没有帮助,除非我插值、执行渐变并可能对结果进行低通滤波
    • 在实际数据的任何微分中,您总是需要在求导数或梯度之前通过一些过滤器和\或插值对其进行平滑处理,这在 1D 中也是如此,那么真正的问题是什么?如何在 3D 数组中求导?
    • 既然你提到了它,它就在我脑海中响起。我只是想寻找一种比简单差异更好的方法来计算导数。如果我没记错的话,该 splinefit 函数会计算样条近似值,然后执行解析导数。它可能有点等价于用样条插值,用第一个差异进行微分,并对输出进行低通滤波,对吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多