设二维函数z=f(x,y),其中z为海拔,x为东西测向距离而y为南北测向距离。

显然有如下事实:斜率大的地方陡峭一些,等高线也要密集一些。可以使用梯度表示MATLAB中有个函数专门完成这个事情,他就是quiver。

用法:

quiver(x,y,u,v)

x,y是包含坐标位置的矩阵,而u和v则是包含偏导数的矩阵。

例如绘制f(x,y)=y-3x-2x^2-3xy-3y^2的方法:

先用gradient函数计算偏导数,然后再用quiver绘制向量场

f=@(x,y) -y-3*x-2*x.^2-3*x.*y-y.^2;

[x,y]=meshgrid(-10:0.5:10,-10:0.5:10);

z=f(x,y);

[fx,fy]=gradient(z,0.5);

c=contour(x,y,z);

clabel(c);

hold on;

quiver(x,y,fx,fy);

转自:Lemniscate的网易博客