MATLAB Function Reference | ![]() ![]() |
表示
FX = gradient(F) [FX,FY] = gradient(F) [Fx,Fy,Fz,...] = gradient(F) [...] = gradient(F,h) [...] = gradient(F,h1,h2,...)
定義
で定義され、 の値が増加する方向を指し示すベクトルの集合として考えられます。MATLAB では、数値勾配(差分)は、任意数の変数をもつ関数に対して計算されます。N変数関数 F(x,y,z,...) に対して、つぎのようになります。
詳細
FX = gradient(F)
は、F
がベクトルのとき、F
の 1次元の数値勾配を出力します。FX
は、 に対応し、x方向の差分です。
[FX,FY] = gradient(F)
は、F
が行列のとき、2次元の数値勾配の x成分と y成分を出力します。FX
は 、 に相当し、
x
(列)方向の差分です。
FY
は、 に相当し、y(行)方向の差分です。各方向での点間隔は、1 であると仮定されます。
[FX,FY,FZ,...] = gradient(F)
は、F
が N
次元のとき、F
の N
成分の勾配を出力します。F
内の値の間隔を制御するためには、2つの方法があります。
h
は、すべての方向の点間隔を指定します。N
個の間隔(h1,h2,...
) は、F
の各次元に対する間隔を指定します。スカラの間隔パラメータは、各次元に対する一定間隔を指定します。ベクトルパラメータは、F
の対応する次元に沿った座標値を指定します。この場合、ベクトルの長さは、対応する次元のサイズに一致しなければなりません。[...] = gradient(F,h)
は、h
がスカラのとき、各方向での点間隔として h
を使います。
N
個の間隔パラメータを用いた [...] = gradient(F,h1,h2,...)
は、F
の各次元に対する間隔を指定します。
例題
v = -2:0.2:2; [x,y] = meshgrid(v); z = x .* exp(-x.^2 - y.^2); [px,py] = gradient(z,.2,.2); contour(v,v,z), hold on, quiver(px,py), hold off
F(:,:,1) = magic(3); F(:,:,2) = pascal(3);gradient(F)
は、dx
=dy
=dz
=1
をとり、[PX,PY,PZ] = gradient(F,0.2,0.1,0.2)
は、dx = 0.2
,dy = 0.1
,dz = 0.2
をとります。
参考
![]() | gplot | graymon | ![]() |