File Exchange

image thumbnail

Improved 2-D Streamlines

version (3.9 KB) by Duane Hanselman
More comprehensive streamline computation than stream2 in MATLAB.


Updated 31 Oct 2012

View License

XY = MMSTREAM2(X,Y,U,V,X0,Y0,Mark,Step) computes streamlines from gradient data in matrices U and V.
X and Y can be vectors defining the coordinate axes data where U(i,j) and V(i,j) coincide with the coordinates axes points X(j) and Y(i).
Alternatively, X and Y can be 2D plaid matrices as produced by MESHGRID.
X0 and Y0 are equal length vectors defining coordinates that mark the Start, End, or a point On individual streamlines as denoted by the input Mark which is 'Start', 'End' or 'On'. If empty or not given Mark='Start'.
Step identifies the normalized step size used. If empty or not given, Step = 0.1, i.e., 1/10 of a cell. 0.01 <= Step <= 0.5

XY is a cell array containing streamline data points. XY{k}(:,1) contains the x-axis data and XY{k}(:,2) contains the y-axis data for the k-th streamline.

Cite As

Duane Hanselman (2021). Improved 2-D Streamlines (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (4)

Nick Earnhardt

Dear Duane,

Well done! It works absolutely perfect for what I need it.

Thanks a lot for sharing.

Carl Shapiro

Works perfectly!

William Thielicke

Just one additional idea: Many flow vis tools that offer streamlines have a parameter like "terminal speed" or "maximum steps". Integration is cancelled when the speed is below a certain threshold or the nr. of steps are exceeded.

William Thielicke

Thanks for the submission. I was waiting a long time for a nice streamline function that draws streamlines through a point. But there is one issue: In the PIV analysis of simulated Hamel-Oseen vortices, the streamlines seem to have an infinite length when they reach the vortex cores. MMstream2 does never finish. I added a tic/toc command that cancels the calculation (breaks the "while loops") after a certain time. Maybe you could add something like this? I used the standard settings + the 'on' input.

MATLAB Release Compatibility
Created with R2006a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!