2015-11-02 40 views
1

我發現matlab中的漸變函數給了我不同於我的期望的答案。matlab中的漸變函數給出了意想不到的結果

我測試此數據集

a = [0.337961000000000 0.394426000000000 1.083110000000000; 
0.337977000000000 0.394627000000000 1.084470000000000; 
0.337972000000000 0.394768000000000 1.085870000000000; 
0.337950000000000 0.394923000000000 1.087260000000000; 
0.337949000000000 0.395092000000000 1.088510000000000] 

根據用於計算梯度

V(2方式,:) =(A(3,:) - (1,:))/ (2 * dt)

其中dt = 1/240;

我希望V(2,:)可以

0.001319999999998 0.041039999999994 0.331200000000011 

而梯度功能(梯度(A)/ DT)給

1.0e+02 * 

0.135960000000000 0.895791600000000 1.655623200000000 

誰能請幫忙看看這裏有什麼問題?謝謝。

+0

爲什麼計算'梯度(ⅴ)'?你不是指'漸變(a')'?更準確地說,它的第二列 – gregswiss

+0

謝謝你指出。我已經更新了它。 – Ben

回答

2

您正在查看梯度的錯誤方向,您需要使用梯度的第二個輸出。

例如:

[~, fy] = gradient(a); 
fy = fy/dt; 
fy(2,:) 

ans = 

    0.0013 0.0410 0.3312 
+0

我明白了。現在它是正確的。謝謝 – Ben

相關問題