MATLAB: Creating multidiagonal matrix from a basic square matrix

aoviding loops;diagonal matrices;finite differencemultidiagonal matrices;

For a finite difference code I need to create a multidiagonal matrix from a basic square matrix A:
How can I do this without using a for loop?

Best Answer

A = magic(3);
n = 8;
B = repmat({A},1,n);
out = blkdiag(B{:});