Matlab中gradient函數(梯度計算原理)


Gradient(F)函數求的是數值上的梯度,假設F為矩陣.

 
>> x=[6,9,3,4,0;5,4,1,2,5;6,7,7,8,0;7,8,9,10,0]
x =
     6       9       3       4      0
     5       4       1       2      5
     6       7       7       8      0
     7       8       9       10      0
 
>> [Fx,Fy]=gradient(x)
Fx =
    3.0000    -1.5000    -2.5000    -1.5000    -4.0000
    -1.0000    -2.0000    -1.0000    2.0000    3.0000
    1.0000    0.5000    0.5000    -3.5000    -8.0000
    1.0000    1.0000    1.0000    -4.5000    -10.0000

Fy =
    -1.0000    -5.0000    -2.0000    -2.0000    5.0000
    0        -1.0000    2.0000    2.0000    0
    1.0000    2.0000    4.0000    4.0000    -2.5000
    1.0000    1.0000    2.0000    2.0000    0
 
計算規則: [Fx,Fy]=gradient(F),其中Fx為其水平方向上的梯度,Fy為其垂直方向上的梯度,Fx的第一列元素為原矩陣第二列與第一列元素之差,Fx的第二列元素為原矩陣第三列與第一列元素之差除以2,以此類推:Fx(i,j)=(F(i,j+1)-F(i,j-1))/2。最后一列則為最后兩列之差。同理,可以得到Fy。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM