Code covered by the BSD License

### Highlights from disperse

4.75
4.8 | 4 ratings Rate this file 16 Downloads (last 30 days) File Size: 4.22 KB File ID: #33866 Version: 1.2

# disperse

### Sam Hallman (view profile)

21 Nov 2011 (Updated )

Assign elements of an input array to individual output variables with a single function call.

### Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

File Information
Description

Oftentimes when using Matlab we find ourselves having to perform a series of repetitive assignments from some kind of array, e.g., a=A(1); b=A(2); c=A(3); . . . etc. Inevitably we ask ourselves, is there a way to do this more simply? DISPERSE is syntactic sugar for performing these kinds of tasks with a single function call.

DISPERSE is not the same as DEAL. For example, if A is a vector then [a b c d] = disperse(A) performs a=A(1), b=A(2), c=A(3), and d=A(4), whereas [a b c d] = deal(A) performs a=A, b=A, c=A, and d=A.

DISPERSE generalizes to arbitrary dimensions, and is extended to follow analogous behavior on cell arrays and structure arrays. For example, if A is an RGB image, then [r g b] = disperse(A) grabs the R, G, and B color channels from A. See the documentation for more examples.

---------
Edit: I was recently notified that there is a similar submission called VECT2VAR. For vector inputs, these functions are equivalent; however, DISPERSE also works on higher-dimensional objects, which is handy when dealing with matrices, images, videos, etc.

Required Products MATLAB
MATLAB release MATLAB 7.9 (R2009b)
23 Dec 2014 Sky Sartorius

### Sky Sartorius (view profile)

I keep finding more uses for this. Thanks for the submission.

Comment only
04 Mar 2013 Michael Völker

### Michael Völker (view profile)

Very nice, simplistic code.

However, if the input is a complex column vector, you accidentally conjugate it, due to this line:
x = x';

--> x = x.';

03 Mar 2012 wenwu xiu

### wenwu xiu (view profile)

Great job,Sam, thanks, works excellent

02 Mar 2012 Yuri K

### Yuri K (view profile)

Great! Looked for such function.

01 Dec 2011 James Hall

### James Hall (view profile)

Very nice! Works exactly as advertised and will be very useful.