Matlab向量场作图

2025-11-21 22:56:03

1、Matlab中向量场图的制作主要使用quiver命令。

首先是原始数据的准备,Matlab帮助中给出了如下示例:

[x,y] = meshgrid(0:0.2:2,0:0.2:2);

u = cos(x).*y;

v = sin(x).*y;

figure

quiver(x,y,u,v);

其中xyuv均是11*11的矩阵。

Matlab向量场作图

2、下面我们使用自己的数据进行制作,比如在nc文件下读出的xyuv进行作图如下:

aa即自行制作的图形,由于aa的数量比较多,生成图的时候可能看不太清楚,下面还使用了放大后的图形:

quiver(aa(:,1),aa(:,2),aa(:,3),aa(:,4));>> axis([113.75 114 21.75 22]);

Matlab向量场作图

Matlab向量场作图

Matlab向量场作图

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命令先将数据进行网格化处理,然后就是想要多密都可以啦!

Matlab向量场作图

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;

Matlab向量场作图

5、上述第三部中给出等值线:

contour(x,y,sqrt(u.^2+v.^2));>> hold on;>> quiver(x,y,u,v)

Matlab向量场作图

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢