MATLAB: Repeat 3D matrix in 4D

3d array4d arrayrepmat

Hello,
I suppose it is not hard, but I need to repeat 3D matrix a (NxMxL) in to 4D b (NxMxMxL). What I need is to repeat each 2D page of 3D matrix M times (which is columns) in 4D. If try:
b=repmat(a,1,1,1,L) ;
Result is b (NxMxLxL), what would be the correct way to do this?

Best Answer

b = repmat( reshape(a, size(a,1), size(a,2), 1, size(a,3)), 1, 1, size(a,2), 1);