⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gradient2.m

📁 Snake模型源码
💻 M
字号:
function [xx,yy] = grad(a,xax,yax)%GRADIENT Approximate gradient.%	[PX,PY] = GRADIENT(Z,DX,DY) returns the numerical partial derivatives%	of matrix Z in matrices PX = dZ/dx and PY = dZ/dy.   DX and DY%	may be scalars containing the sample spacing in the X and Y%	directions, or they may be vectors containing all the explicit%	locations.%%	[PX,PY] = GRADIENT(Z) assumes DX = DY = 1.%%	If Y is a vector, GRADIENT(Y) and GRADIENT(Y,DX) return the one%	dimensional numerical derivative dY/dX.%%	For example, try%	   [x,y] = meshgrid(-2:.2:2, -2:.2:2);%	   z = x .* exp(-x.^2 - y.^2);%	   [px,py] = gradient(z,.2,.2);%	   contour(z),hold on, quiver(px,py), hold off%%	See also DIFF, DEL2, QUIVER, CONTOUR.%	Charles R. Denham, MathWorks 3-20-89%	Copyright (c) 1984-94 by The MathWorks, Inc.[m,n] = size(a);if nargin == 1, xax = 1; yax = 1; endif nargin == 2, yax = xax; endif length(xax) == 1, xax = xax .* (0:n-1); endif length(yax) == 1, yax = yax .* (0:m-1); endy = [];ax = xax(:).';for i = 1:2   x = y;   [m,n] = size(a);   y = zeros(m, n);   j = 1:m;   if n > 1      d = ax(2) - ax(1);      y(j, 1) = (a(j, 2) - a(j, 1)) ./ d;     % Left edge.      d = ax(n) - ax(n-1);      y(j, n) = (a(j, n) - a(j, n-1)) ./ d;   % Right edge.   end   if n > 2      k = 1:n-2;      d = ones(m, 1) * (ax(k+2) - ax(k));      y(j, k+1) = (a(j, k+2) - a(j, k)) ./ d;   % Middle.   end   a = a.';   ax = yax(:).';endz = (x + sqrt(-1) .* y.');if nargout < 2   xx = z; else   xx = real(z); yy = imag(z);end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -