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 (2020). Improved 2-D Streamlines (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (4)

Dear Duane,

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

Thanks a lot for sharing.

Works perfectly!

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.

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