Interleave Vectors or Matrices

Interleaves rows or columns of any number of vectors or matrices
1.5K Downloads
Updated 5 Mar 2014

View License

A robust interleave function that interleaves any number of vectors or matrices by row or column. If the input are just vectors, there is no need to specify orientation. Extra elements/rows/columns are appended on the end of the output matrix. Not the most efficient algorithm, but it works well for most operations.

Examples:

1) Interleaving rows of matrices

A = [1 2; 3 4] B = [5 6;7 8]

C = interleave2(A, B, 'row')
C = [1 2
5 6
3 4
7 8]

2) Interleaving columns of matrices

C = interleave2(A, B, 'col')
C = [1 5 2 6
3 7 4 8]

3) Interleaving vectors (Note: input vectors need not be same orientation)

A = [1 2 3 4] B = [5 6 7 8 9]'
C = interleave2(A, B)
C = [1 5 2 6 3 7 4 8 9]'

4) Interleaving >2 matrices

A = [1 2;3 4] B = [5 6;7 8]
C = [9 10;11 12] D = [13 14;15 16]

E = interleave2(A, B, C, D, 'col')
E = [1 5 9 13 2 6 10 14
3 7 11 15 4 8 12 16]

5) Interleaving columns of 2 matrices with unequal columns

A = [1 2;3 4]
B = [5 6 7 8;9 10 11 12]
C = interleave2(A, B, 'col')
C = [1 5 2 6 7 8
3 9 4 10 11 12]

6) Interleaving >2 vectors of unequal lengths

A = [1 2 3 4] B = [5 6 7]
C = [8 9 10 11 12 13]
D = interleave2(A, B, C)
D = [1 5 8 2 6 9 3 7 10 4 11 12 13]

Cite As

Steven Shimizu (2024). Interleave Vectors or Matrices (https://www.mathworks.com/matlabcentral/fileexchange/45757-interleave-vectors-or-matrices), MATLAB Central File Exchange. Retrieved .

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

Inspired by: interleave

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
1.1.0.0

Modified description

1.0.0.0