关于MATLAB中的gradient函数

转自  http://hi.baidu.com/zpevvqbhtjabgue/item/18d50aa050cda710a8cfb7b0



示例:

>> a=[1 4 8 2;5 9 3 5;7 2 6 7;1 8 6 2]

a =

     1     4     8     2
     5     9     3     5
     7     2     6     7
     1     8     6     2

>> [c,d]=gradient(a)

c =

    3.0000    3.5000   -1.0000   -6.0000
    4.0000   -1.0000   -2.0000    2.0000
   -5.0000   -0.5000    2.5000    1.0000
    7.0000    2.5000   -3.0000   -4.0000


d =

    4.0000    5.0000   -5.0000    3.0000
    3.0000   -1.0000   -1.0000    2.5000
   -2.0000   -0.5000    1.5000   -1.5000
   -6.0000    6.0000         0   -5.0000

以下我们解释c是怎么得到的:

1、a总共4列,相邻两列相减,得到3列数,如下矩阵e:

    3     4    -6
     4    -6     2
    -5     4     1
     7    -2    -4

c的第一列就是矩阵e的第一列

c的第二列就是矩阵e的第一列和第二列的平均值

c的第三列就是矩阵e的第二列和第三列的平均值

c的第四列就是矩阵e的第四列

2、同理,d是行相减



梯度:变化/参考量
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与信号处理》 
[FX,FY]=gradient(F,HX,HY)。HX,HY参数表示各方向相邻两点的距离。

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

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
-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 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值