Matlab中gradient函数的使用方法
注:來自?http://www.ilovematlab.cn/thread-40710-1-1.html 和?http://www.zdh1909.com/html/matlab/18189.html
Gradient(F)函數(shù)求的是數(shù)值上的梯度,假設(shè)F為矩陣.
計算規(guī)則:
?[Fx,Fy]=gradient(F),其中Fx為其水平方向上的梯度,Fy為其垂直方向上的梯度,Fx的第一列元素為原矩陣第二列與第一列元素之差,Fx的第二列元素為原矩陣第三列與第一列元素之差除以2,以此類推:Fx(i,j)=(F(i,j+1)-F(i,j-1))/2。最后一列則為最后兩列之差。同理,可以得到Fy。
1、如果F是一維矩陣,則FX=gradient(F,H)返回F的一維數(shù)值梯度。H是F中相鄰兩點(diǎn)間的間距。
2、如果F是二維矩陣,返回F的二維數(shù)值梯度。
[FX,FY]=gradient(F,HX,HY) ? ? HX,HY參數(shù)表示各方向相鄰兩點(diǎn)的距離3、如果F是三維矩陣,返回F的三維數(shù)值梯度。
[FX,FY,FZ]=gradient(F,HX,HY,HZ) ? ??HX,HY,HZ參數(shù)表示各方向相鄰兩點(diǎn)的距離。
例如:
>> 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
總結(jié)
以上是生活随笔為你收集整理的Matlab中gradient函数的使用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是时间导数(Time derivat
- 下一篇: Cuboid特征提取算法