Documentation

# quiver3

3-D quiver or velocity plot

## Syntax

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

## Description

A three-dimensional quiver plot displays vectors with components (u,v,w) at the points (x,y,z), where u, v, w, x, y, and z all have real (non-complex) values.

quiver3(x,y,z,u,v,w) plots vectors with directions determined by components (u,v,w) at points determined by (x,y,z). The matrices x,y,z,u,v, and w must all be the same size and contain the corresponding position and vector components.

quiver3(z,u,v,w) plots vectors with directions determined by components (u,v,w) at equally spaced points along the surface z. For each vector (u(i,j),v(i,j),w(i,j)), the column index j determines the x-value of the point on the surface, the row index i determines the y-value, and z(i,j) determines the z-value. That is, quiver3 locates the vector at the point on the surface (j,i,z(i,j)). The quiver3 function automatically scales the vectors to prevent overlapping based on the distance between them.

quiver3(...,scale) automatically scales the vectors to prevent them from overlapping, and then multiplies them by scale. scale = 2 doubles their relative length, and scale = 0.5 halves them. Use scale = 0 to plot the vectors without the automatic scaling.

quiver3(...,LineSpec) specifies line style, marker symbol, and color using any valid LineSpec. quiver3 draws the markers at the origin of the vectors.

quiver3(...,LineSpec,'filled') fills markers specified by LineSpec.

quiver3(...,'PropertyName',PropertyValue,...) specifies property name and property value pairs for the quiver chart that the function creates.

quiver3(ax,...) plots into the axes ax instead of into the current axes (gca).

h = quiver3(...) returns the Quiver object.

## Examples

collapse all

Define the data.

x = -3:0.5:3;
y = -3:0.5:3;
[X,Y] = meshgrid(x, y);
Z = Y.^2 - X.^2;
[U,V,W] = surfnorm(Z);

Plot vectors with components (U,V,W) at points that are equally spaced in the x-direction and y-direction with heights determined by Z.

figure
quiver3(Z,U,V,W)
view(-35,45)

Plot the surface normals of the function $z=x{e}^{-{x}^{2}-{y}^{2}}$.

[X,Y] = meshgrid(-2:0.25:2,-1:0.2:1);
Z = X.* exp(-X.^2 - Y.^2);
[U,V,W] = surfnorm(X,Y,Z);

figure
quiver3(X,Y,Z,U,V,W,0.5)

hold on
surf(X,Y,Z)
view(-35,45)
axis([-2 2 -1 1 -.6 .6])
hold off