本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

quiver

箭头图或速度图

语法

quiver(x,y,u,v)
quiver(u,v)
quiver(...,scale)
quiver(...,LineSpec)
quiver(...,LineSpec,'filled')
quiver(...,'PropertyName',PropertyValue,...)
quiver(ax,...)
h = quiver(...)

说明

箭头图将速度向量显示为箭头,其中分量 (u,v) 位于点 (x,y) 处。

例如,第一个向量由分量 u(1),v(1) 定义并显示在点 x(1),y(1) 处。

quiver(x,y,u,v)xy 中每个对应元素对组所指定的坐标处将向量绘制为箭头。矩阵 xyuv 必须大小相同并包含对应的位置和速度分量。但是,如下节所述,xy 还可以是向量。默认情况下,箭头缩放到刚好不重叠,但您可以根据需要将箭头缩放的长一些或短一些。

quiver(u,v)x-y 平面的等距点处绘制 uv 指定的向量。

quiver(...,scale) 自动缩放箭头以适合网格大小,然后根据因子 scale 拉伸它们。scale = 2 使它们的相对长度加倍,scale = 0.5 使它们的相对长度减半。使用 scale = 0 绘制速度向量,不应用自动缩放。您还可以在绘制箭头后调整其长度,方法就是选择 Plot Edit 工具,再选择箭头图对象,然后打开属性编辑器并调整长度滑块。

quiver(...,LineSpec) 使用任何有效的 LineSpec 指定线型、标记符号和颜色。quiver 在向量原点处绘制标记。

quiver(...,LineSpec,'filled') 填充 LineSpec 指定的标记。

quiver(...,'PropertyName',PropertyValue,...) 为该函数创建的箭头图对象指定属性名称和属性值对组。

quiver(ax,...) 将图形绘制到 ax 坐标区中,而不是当前坐标区 (gca) 中。

h = quiver(...) 返回 Quiver 对象。

展开 x 和 y 坐标

如果 xy 不是矩阵,MATLAB® 会将它们展开。该展开与调用 meshgrid 以基于向量生成矩阵等效:

[x,y] = meshgrid(x,y);
quiver(x,y,u,v)

在这种情况下,以下条件必须为 true:

length(x)=nlength(y) = m,其中 [m,n] = size(u) = size(v)

向量 xuv 的列相对应,而向量 yuv 的行相对应。

示例

全部折叠

使用 quiverxy 的每个数据点处显示箭头,这样箭头方向和长度分别由 uv 中的相应值表示。

[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)

绘制函数 z=xe-x2-y2 的梯度。

[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

扩展功能

在 R2006a 之前推出