The transformation
c = repmat(a, [1,1,A,A]);
d = c(:,1,:,:);
is an indirection to reproduce b.
Z = 2;
W = 3;
A = 4;
a = rand(Z, W);
b = repelem(a(:,1),A,A);
c = reshape(repmat(a(:,1).', [A, A]), Z*A, A);
isequal(b, c)
But if you really want
c = repmat(a, [1,1,A,A]);
d = c(:,1,:,:);
Then:
f = reshape(permute(d, [3,1,4,2]), [Z*A,A]);
isequal(b, f)
Best Answer