gradient()是求数值梯度函数的命令。[Fx,Fy]=gradient(x),其中Fx为其水平方向上的梯度,Fy为其垂直方向上的梯度,Fx的第一列元
素为原矩阵第二列与第一列元素之差,Fx的第二列元素为原矩阵第三列与第一列元素之差除以2,以此类推:Fx(i,j)=(F(i,j+1)-F(i,jwww.iLoveMatlab.cn
-1))/2。最后一列则为最后两列之差。同理,可以得到Fy。
1。如果F是一维矩阵,则FX=gradient(F,H)返回F的一维数值梯度。H是F中相邻两点间的间距。
2。如果F是二维矩阵,返回F的二维数值梯度。《Simulink与信号处理》
[FX,FY]=gradient(F,HX,HY)。HX,HY参数表示各方向相邻两点的距离。
3。如果F是三维矩阵,返回F的三维数值梯度。
[FX,FY,FZ]=gradient(F,HX,HY,HZ)。
HX,HY,HZ参数表示各方向相邻两点的距离。 Matlab中文论坛
例:
>>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
book.iLoveMatlab.cn
-1.0000-2.0000-1.00002.00003.0000
1.00000.50000.5000-3.5000-8.0000
1.00001.00001.0000-4.5000 -10.0000www.iLoveMatlab.cn
Fy =
-1.0000-5.0000-2.0000-2.00005.0000
0-1.00002.00002.00000 book.iLoveMatlab.cn
1.00002.00004.00004.0000 -2.5000
1.00001.00002.00002.00000
www.iLoveMatlab.cn