Matlab常用函式 gradient

2021-07-04 13:15:53 字數 1460 閱讀 4397

gradient()是求數值梯度的函式。

用法

1、fx = gradient(f,h):其中f為一維矩陣,返回f的一維數值梯度,h是f中相鄰兩點的間距,預設時預設為1。
2、[fx,fy] = gradient(f,hx,hy):其中f為二維矩陣,返回f的二維數值梯度;hx表示x方向上相鄰兩點的距離,預設時預設為1;hy表示y方向上相鄰兩點的距離,預設時預設為1。

3、[fx,fy,fz]=gradient(f,hx,hy,hz):其中f為三維矩陣,返回f的三維數值梯度,hx,hy,hz分別表示x、y、z三個方向上相鄰兩點的距離,預設時預設為1。

理解

1、[fx,fy]=gradient(f,hx,hy),其中fx為其水平方向上的梯度,fy為其垂直方向上的梯度,fx的第一列元素為原矩陣第二列與第一列元素之差除以hx,fx的第二列元素為原矩陣第三列與第一列元素之差除以(2*hx),以此類推:fx(i,j)=(f(i,j+1)-f(i,j-1))/(2*hx)。最後一列則為最後兩列之差除以hx

。同理,可以得到fy。

2、[fx,fy]=gradient(f),其中fx為其水平方向上的梯度,hx和hy預設為1,fy為其垂直方向上的梯度,fx的第一列元素為原矩陣第二列與第一列元素之差,fx的第二列元素為原矩陣第三列與第一列元素之差除以2,以此類推:fx(i,j)=(f(i,j+1)-f(i,j-1))/2。最後一列則為最後兩列之差。同理,可以得到fy。

例項

f=[6,9,3,4,0;5,4,1,2,5;6,7,7,8,0;7,8,9,10,0]        即

[fx,fy]=gradient(f),fx結果為:

[fx,fy]=gradient(f,2,2),fx結果為:

[fx,fy]=gradient(f,3,3),fx結果為:

注意問題

對影象求梯度時,在獲取影象矩陣a後,要將影象

轉化為double型,即要用[dy,dx]=gradient(double(a),否則會報錯。

MATLAB常用函式

y polyval p,x 返回n次多項式在x處的值。輸入變數p是乙個長度為n 1的向量,其元素為按降冪排列的多項式係數y p1 x n p2 x n 1 pn x p n 1 x可以是乙個矩陣或者乙個向量,在這兩種情況下,polyval計算在x中任意元素處的多項式p的估值 對多項式p x 3 x ...

Matlab常用函式

下例為讀取train資料夾中的所有 folder train filepaths dir fullfile folder,bmp 列出該資料夾下所有.bmp格式的檔案 其中包括檔案的名字 日期 畫素等 for i 1 length filepaths image imread fullfile fo...

matlab常用函式

是x的下限,ub是x的上限,x是向量 語法 zi griddata x,y,z,xi,yi xi,yi,zi griddata x,y,z,xi,yi gridata method griddata method,options 說明 zi griddata x,y,z,xi,yi 調整形如z f ...