Suppose you have 4 matrices:
SeedRandom[1]
{a, b, c, d} = RandomInteger[1, {4, 2, 2}];
Then, you can use a combination of ArrayReshape
and Transpose
to construct the desired matrix:
ArrayReshape[Transpose[Transpose[{a, b, c, d}, {3, 1, 2}], {2, 2, 4}]
{{{1, 0, 0, 0}, {1, 0, 1, 0}}, {{0, 0, 0, 0}, {1, 1, 0, 0}}}