参考http://379910987.blog.163.com/blog/static/33523797201162223310546/

设二维函数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);
效果如下:
MATLAB-octave中向量场图的可视化-LMLPHP
局部放大后:
MATLAB-octave中向量场图的可视化-LMLPHP
嘿嘿!!不错吧。
05-04 01:01