EDA365电子论坛网
标题:
了解一下Matlab梯度函数gradient吧
[打印本页]
作者:
mutougeda
时间:
2020-3-21 13:40
标题:
了解一下Matlab梯度函数gradient吧
8 h9 o2 o" f( `% Z' U+ j
梯度:变化/参考量
7 X6 t; l. Q2 Z* \
/ C7 j' J$ q! R0 O. s
5 q0 ? x0 \$ n3 D/ _$ X% D
1 R- E7 p, o+ B. D* z" O
1。如果F是一维矩阵,则FX=gradient(F,H)返回F的一维数值梯度。H是F中相邻两点间的间距。
" t) Q( b8 ^6 b; {. y
8 j- \& Y) V9 W1 q$ n7 t% j
9 X/ T- I5 K7 M6 v; U
/ r9 i8 P& Z$ K" \2 d. g n+ {9 L
2。如果F是二维矩阵,返回F的二维数值梯度。
+ i( w! v. m" J2 G& g4 c. g1 T
( `$ b/ B' J8 ?$ h \ c
[FX,FY]=gradient(F,HX,HY)。HX,HY参数表示各方向相邻两点的距离。
7 d& Y9 ?% J; N
' b* K# B" L6 t- {; A5 I: F
u' L0 \0 M3 j
! X! p4 O) |# ]% g- }) y
3。如果F是三维矩阵,返回F的三维数值梯度。
7 B( J8 W2 v9 `5 G5 [ ]
2 X" F7 T/ I- \8 t% o/ }
[FX,FY,FZ]=gradient(F,HX,HY,HZ)。
+ s$ t# O# E4 R6 G" ?
" p9 p; N4 s0 I
HX,HY,HZ参数表示各方向相邻两点的距离。
1 W% [# |# `5 I) I7 h/ F2 f/ g
$ W1 y/ P! {; e( c/ W
/ Q% u' v/ y6 S/ ~ x+ h8 C9 q
例:
1 L/ G) k" s8 h. l
>> x=[6,9,3,4,0;5,4,1,2,5;6,7,7,8,0;7,8,9,10,0]
2 b% i1 y6 C! g5 t; \
x =
- ^: e+ K9 f. ?3 B/ A' L
6 9 3 4 0
5 @8 X- l& ^+ K; e s
5 4 1 2 5
* S0 X# E b4 @- l) W* j! O
6 7 7 8 0
8 Q/ m/ L6 I/ h
7 8 9 10 0
9 J7 y) W6 S7 I! b) n
>> [Fx,Fy]=gradient(x)
% S8 ?* R1 Z( i1 P6 C
Fx =
4 J Q& Y% L" ?% R
3.0000 -1.5000 -2.5000 -1.5000 -4.0000
% q4 O- [( Y$ {' p8 C' ]% h( N
-1.0000 -2.0000 -1.0000 2.0000 3.0000
% }* c2 Z4 u% `2 ]: F+ x2 i) _! S
1.0000 0.5000 0.5000 -3.5000 -8.0000
" p/ c- Z8 O5 c7 o- i
1.0000 1.0000 1.0000 -4.5000 -10.0000
7 U$ M3 ~, j' J9 o$ v0 Q7 i/ j
2 a/ [( e6 W1 F( U& k/ v9 v) }9 R
Fy =
- B5 _, o3 Y) M0 E" [' O
-1.0000 -5.0000 -2.0000 -2.0000 5.0000
' m# ]: g) @7 [' W
0 -1.0000 2.0000 2.0000 0
2 g, u6 g S7 R2 G
1.0000 2.0000 4.0000 4.0000 -2.5000
" W& ?( u8 `' F% l0 u* M
1.0000 1.0000 2.0000 2.0000 0
9 B' @6 j3 `/ `# p# A( c8 Q5 d* A
* g: W) j: g- `# `, u
gradient()是求数值梯度函数的命令。[Fx,Fy]=gradient(x),其中Fx为其水平方向上的梯度,Fy为其垂直方向上的梯度,Fx的第一列元素为原矩阵第二列与第一列元素之差,Fx的第二列元素为原矩阵第三列与第一列元素之差除以2,以此类推:Fx(i,j)=(F(i,j+1)-F(i,j-1))/2。最后一列则为最后两列之差。同理,可以得到Fy。
作者:
ExxNEN
时间:
2020-3-21 15:22
Matlab梯度函数gradient
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2