MATLAB: How to loop shift a matrix for N times but keeping the result from each iteration

loopMATLABmatrix

code
R=6;
T=4;
M=8;
H_telda=randn(R,T)+j*randn(R,T);
H_dtelda=zeros(R*M,T);
H_dtelda(1:R,1:T)=H_telda;
H=zeros(R*M,T*M);
H(1:R,1:T)=H_telda;
H=[H_dtelda,circshift(H_dtelda,[R,T]),circshift(H_dtelda,[R*2,T*2]),circshift(H_dtelda,[3*R,3*T]),
circshift(H_dtelda,[4*R,4*T]),circshift(H_dtelda,[5*R,5*T]),circshift(H_dtelda,[6*R,6*T]),circshift(H_dtelda,[7*R,7*T])];
I want to do the last circshift as a loop. because sometimes i'd like to repeat it for 100 times but it would be hard to keep writing it. NOTE: The final result should have the original matrix and all the iterations.

Best Answer

H = zeros(R*M, T*M);
for M = 0:7
idx = M * T + 1;
H(:, idx : idx + T - 1) = circshift(H_dtelda, [R * M, T * M]);
end