下同通过一个基本的例子来说明一个大致的过程。
假设有一个矩阵A=[1 2 3 ;4 5 6],在每一个处沿水平方向的速度为u=[1 1 1;1 1 1],沿垂直方向的速度为v=[1 0 1;0 1 0];
首先要做的就是确定一个矩阵坐标,这样就可以将u,v分别对应到这个坐标点上去。我们可以用两个矩阵来表示,一个矩阵代表横坐标,一个矩阵代表纵坐标,两个矩阵一一对应就可以确定出一个坐标点的位置了。那么怎么样才能生成这样的矩阵呢。
以上面的矩阵A为例,其横坐标x[1 1 1;2 2 2],纵坐标y=[1 2 3;1 2 3],这样两个矩阵就可以表示出A中各个的坐标了。对于简单的矩阵,可以直接写出,对于复杂的就没那么容易了。可以利用matlab提供的meshgrid函数,为我们自动生成。
>> A=[1 2 3;4 5 6];
>> [height,width]=size(A);
>> [y,x]=meshgrid(1:width,1:height)
y =
1 2 3
1 2 3
x =
1 1 1
2 2 2
>> u=[1 1 1;1 1 1];
>> v=[1 0 1;0 1 0];
>> quiver(x,y,u,v)
>> grid