zoukankan      html  css  js  c++  java
  • 帮助一下理解Matlab梯度函数gradient

    帖子来源: http://www.ilovematlab.cn/thread-40710-1-1.html 

    请问一下gradient之间的过程
    例:
    >> 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()是求数值梯度函数的命令。[Fx,Fy]=gradient(x),其中Fx为其水平方向上的梯度,Fy为其垂直方向上的梯度,Fx的第一列元素为原矩阵第二列与第一列元素之差,Fx的第二列元素为原矩阵第三列与第一列元素之差除以2,以此类推:Fx(i,j)=(F(i,j+1)-F(i,j-1))/2。最后一列则为最后两列之差。同理,可以得到Fy。我是从其他的矩阵计算中突然想到的。希望以后不再出同样短路情况了。 

  • 相关阅读:
    【luogu2756】 飞行员配对方案问题 [二分图匹配 匈牙利算法]
    [APIO2008]紧急集合
    2019.8.27 Za
    【luogu2763】试题库问题 [网络流 最大流]
    [CQOI2014]危桥 [网络流 最大流]
    【luogu1231】教辅的组成 [网络流 最大流]
    【网络流】
    【2019.8.24】
    【匈牙利算法】
    2019.8.23 Za [数论]
  • 原文地址:https://www.cnblogs.com/wmx3ng/p/2775958.html
Copyright © 2011-2022 走看看