MATLAB: Combine 3x3D into 4D matrix

combine 3d 4d

I have 3 x 3D Matrixs of size (nrows x nfreqs x time) ie (5000 x 10 x 100)
i want to combine them into a 4D matrix of size (5000 x 3 x 10 x 1000)
ie the 5000 rows of 3D matrix are combined as 3 columns in the 4D matrix

Best Answer

Easiest:
permute(cat(4,M1, M2, M3), [1 4 2 3])
less memory perhaps:
cat(2,reshape(M1, 5000, 1, 10, 100), reshape(M2, 5000, 1, 10, 100), reshape(M3, 5000, 1, 10, 100))