I have N^2 3D arrays, all with size (nx, ny, nz). These arrays are arranged in a square matrix (N x N). I would like to expand the inner arrays concatenating them along the first two dimensions but not along the third, so the end result should be a matrix with size (N*nx, N*ny, nz).
For clarity, you can imagine the following scenario: I collected videos using N^2 cameras arranged in a grid, and now I want to stitch them into a single video.
So for a simple example you can consider I have these 4 arrays
a = rand(1, 2, 3)
b = rand(1, 2, 3)
c = rand(1, 2, 3)
d = rand(1, 2, 3)
and they are arranged as
M = [[a] [b]; [c] [d]]
what I want to do is transform M into a 3d array V whose dimensions are (2, 4, 3). It should then satisfy
V[1:1, 1:2, :] == M[1,1], V[1:1, 3:4, :] == M[1,2], V[2:2, 1:2, :] == M[2,1], V[2:2, 3:4, :] == M[2,2].
It didn’t feel too complicated initially but after trying various combinations of hcat, vcat, cat… I still did not find a simple solution.
Thanks
 .
.