MATLAB: Repeat a matrix as digonal element in a new matrix

diagonal elementmatrixrepeat

Hi
I have a 2D matrix, and I want repeat it a digonal element in a new matrix., somthing like this:
A is 2*3 matrix , and we want reapeat for 10 time like:
B= [ A 0 0 …..0; 0 A 0 …..0; ………….. ;0 0 0 ……..A]
hence B is a 20*30 matrix. How can make B without using "for"?

Best Answer

Hi,
I usually use blkdiag:
A = rand(2,3);
ACell = repmat({A}, 1, 10);
BigA = blkdiag(ACell{:});
Titus