# streamline

Plot streamlines from 2-D or 3-D vector data

## Syntax

```streamline(X,Y,Z,U,V,W,startx,starty,startz) streamline(U,V,W,startx,starty,startz) streamline(XYZ) streamline(X,Y,U,V,startx,starty) streamline(U,V,startx,starty) streamline(XY) streamline(...,options) streamline(axes_handle,...) h = streamline(...) ```

## Description

`streamline(X,Y,Z,U,V,W,startx,starty,startz)` draws streamlines from 3-D vector data `U`, `V`, `W`.

The arrays `X`, `Y`, and `Z`, which define the coordinates for `U`, `V`, and `W`, must be monotonic, but do not need to be uniformly spaced. `X`, `Y`, and `Z` must have the same number of elements, as if produced by `meshgrid`.

`startx`, `starty`, `startz` define the starting positions of the streamlines.

`streamline(U,V,W,startx,starty,startz)` assumes the arrays `X`, `Y`, and `Z` are defined as `[X,Y,Z] = meshgrid(1:N,1:M,1:P)`, where ```[M,N,P] = size(U)```.

`streamline(XYZ)` assumes `XYZ` is a precomputed cell array of vertex arrays (as produced by `stream3`).

`streamline(X,Y,U,V,startx,starty)` draws streamlines from 2-D vector data `U`, `V`.

The arrays `X` and `Y`, which define the coordinates for `U` and `V`, must be monotonic, but do not need to be uniformly spaced. `X` and `Y` must have the same number of elements, as if produced by `meshgrid`.

`startx` and `starty` define the starting positions of the streamlines. The output argument `h` contains a vector of line handles, one handle for each streamline.

`streamline(U,V,startx,starty)` assumes the arrays `X` and `Y` are defined as `[X,Y] = meshgrid(1:N,1:M)`, where ```[M,N] = size(U)```.

`streamline(XY)` assumes `XY` is a precomputed cell array of vertex arrays (as produced by `stream2`).

`streamline(...,options)` specifies the options used when creating the streamlines. Define `options` as a one- or two-element vector containing the step size or the step size and the maximum number of vertices in a streamline:

```[stepsize] ```

or

```[stepsize, max_number_vertices] ```

If you do not specify values, MATLAB® uses the default:

• Step size = 0.1 (one tenth of a cell)

• Maximum number of vertices = 1000

`streamline(axes_handle,...)` plots into the axes object with the handle `axes_handle` instead of the into current axes object (`gca`).

`h = streamline(...)` returns a vector of line handles, one handle for each streamline.

## Examples

collapse all

Define arrays `x`, `y`, `u`, and `v`.

```[x,y] = meshgrid(0:0.1:1,0:0.1:1); u = x; v = -y;```

Create a quiver plot of the data. Plot streamlines that start at different points along the line $y=1$.

```figure quiver(x,y,u,v) startx = 0.1:0.1:1; starty = ones(size(startx)); streamline(x,y,u,v,startx,starty)```