matlab:箭头图或速度图绘制函数quiver

matlab官方quiver介绍

速度场

在平面直角坐标系中,两个点 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2)唯一地确定一个矢量或速度,现在将这个矢量平移到以 ( 0 , 0 ) (0,0) (0,0)为起点得到得两个点坐标为 ( 0 , 0 ) (0,0) (0,0) ( x 2 − x 1 , y 2 − y 1 ) (x_2-x_1,y_2-y_1) (x2x1,y2y1),令 x 2 − x 1 = x , y 2 − y 1 = y x_2-x_1 = x , y_2-y_1 = y x2x1=x,y2y1=y,则在matlab绘图时,实际上只需要给出 x x x y y y就能画出这个矢量。

代码实例

下面的代码中,首先生成一个5*5的网格,然后统一将所有速度场调整为向右,也就是x任意正数y0

[x,y] = meshgrid(0:0.5:2,0:0.5:2);
u = [0.5 0.5 0.5 0.5 0.5]'*[0.5 0.5 0.5 0.5 0.5];
v = [0 0 0 0 0]'*[0 0 0 0 0];

figure
quiver(x,y,u,v)
grid on

得到的图形如下
在这里插入图片描述
现在要使箭头方向相反,直接在x前加负号就行

[x,y] = meshgrid(0:0.5:2,0:0.5:2);
u = -[0.5 0.5 0.5 0.5 0.5]'*[0.5 0.5 0.5 0.5 0.5];
v = [0 0 0 0 0]'*[0 0 0 0 0];

figure
quiver(x,y,u,v)
grid on

在这里插入图片描述
其他矢量方向也可以根据xy的比例调整,举个最简单的例子,将部分xy调整成一样的数值,那么非常明显,矢量的方向为斜向上45°

[x,y] = meshgrid(0:0.5:2,0:0.5:2);
u = [0.5 0.5 0.5 0.5 0.5]'*[0.5 0.5 0.5 0.5 0.5];
v = [0.5 0.5 0 0 0]'*[0.5 0.5 0 0 0];

figure
quiver(x,y,u,v)
grid on

在这里插入图片描述

相关推荐
©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页