1、Matlab中向量场图的制作主要使用quiver命令。首先是原始数据的准备,Matlab帮助中给出了如下示例:[x,y] = meshgrid(0:0.2:2,0:0.2:2); u = cos(x).*y; v = sin(x).*y; figurequiver(x,y,u,v);其中xyuv均是11*11的矩阵。

2、下面我们使用自己的数据进行制作,比如在nc文件下读出的xyuv进行作图如下:aa即自行制作的图形,由于aa的数量比较多,生成图的时候可能看不太清楚,下面还使用了放大后的图形:quiver(aa(:,1),aa(:,2),aa(:,3),aa(:,4));>> axis([113.75 114 21.75 22]);



3、如果嫌弃图形太密,可以将数据进行插值计算后得到较为稀疏的图形:x = linspace(b,a,20);y = linspace(d,c,20);for ii = 1:20y(:,ii) = y(:,1);x(ii,:) = x(1,:);endu = griddata(xx,yy,uu,x,y);v = griddata(xx,yy,vv,x,y);quiver(x,y,u,v);使用griddata命令先将数据进行网格化处理,然后就是想要多密都可以啦!

4、quiver中还可以加入等值线:[X,Y] = meshgrid(-2:.2:2);Z = X.*exp(-X.^2 - Y.^2);[DX,DY] = gradient(Z,.2,.2); figure;contour(X,Y,Z);hold on;quiver(X,Y,DX,DY);hold off;

5、上述第三部中给出等值线:contour(x,y,sqrt(u.^2+v.^2));>> hold on;>> quiver(x,y,u,v)

6、虽然图形不太好看,但基本表现了uv的状态。