您的位置:首页 > 编程语言 > MATLAB

gradient()函数的理解

2016-05-18 22:29 411 查看
梯度:变化/参考量

gradient()是求数值梯度函数的命令。

[Fx,Fy]=gradient(x),其中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的一维数值梯度。H是F中相邻两点间的间距。

2。如果F是二维矩阵,返回F的二维数值梯度。《Simulink与信号处理》

3。如果F是三维矩阵,返回F的三维数值梯度。

[FX,FY]=gradient(F,HX,HY)。HX,HY参数表示各方向相邻两点的距离。

例如:

[z1,z2]=gradient(x,0.2,0.25);%这个就是将默认除以的2,x轴换为0.2,y轴换为0.25.

[FX,FY,FZ]=gradient(F,HX,HY,HZ)。

HX,HY,HZ参数表示各方向相邻两点的距离。

举个栗子:

>>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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab