File Exchange

image thumbnail

Stacked Matrix Permutation

version (2.02 KB) by Emanuele Ruffaldi
Simplify the reordering of the sub-dimensions in a stacked matrices


Updated 10 Jun 2013

View License

When a MATLAB matrix contains submatrices related to various factors it is sometime needed to reorder them along different factors.

E.g. we have a 2D matrix where rows are organized by 141 runs each made of 8 parts. Along the columns we have 21 microphones. A training algorithm requires to merge parts and microphone, needing a 2D matrix with the 141 runs in the rows, and both parts and microphones in the columns.

The initial layout can be expressed as: (parts runs) x (mics) where the terms in parenthesis are organized as in an inverse nested loops: for the rows we first iterate by runs and then by parts. That is from inner loop to outer loops in left to right. The target layout is instead: (runs) x (parts mics)

The general problem for 2D matrices is (A B C...) x (D E F...), and the resolution relies on the fact that MATLAB stores matrices in column order, that is we can use a single flat representation as (A B C D E F) with the same ordering from inner to outer.

This function is similar to permute but it manipulates the sub-dimensions defined inside rows or columns of a given matrix.

Cite As

Emanuele Ruffaldi (2020). Stacked Matrix Permutation (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (0)

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