MATLAB梯度导数疑难解答

信息处理 matlab 噪音 平滑 坡度
2022-01-31 22:13:26

我有一个数组A具有接下来的 145 个值

我想计算dAdX,具有一维网格,x: 1:286:41468

我使用函数渐变:

DA_DX = gradient(A, 41468/145)

我试图理解为什么dAdX输出图的峰值会导致我的代码出现问题。请问,你发现我的步骤有什么问题吗?有没有其他方法来计算dAdX没有梯度功能?

1个回答

您可以使用 diff 函数计算导数,然后除以向量中“样本”之间的时间间隔,如下所示:

dA = diff(A) / 286

diff() 函数计算向量中一个元素与前一个元素之间的差异。有了这个,您将计算向量中每个元素的导数,即 A 中的增量除以 x 中的增量。查看 diff() 的帮助以获取更多信息。