MATLAB: Building a diagonal matrix from another matrix!

diagonal matrix blkdiag

Hi eveybody,
im trying to build a diagonal matrix from another matrix in general form like following:
A=[a b,c d] —–> B[a 0 0 0,0 b 0 0,0 0 c 0,0 0 0 d]
dont want to write each array using blkdiag( ) function becuase my aimed matrix is too big.
tnx

Best Answer

A = 1:5 ;
B_sparse = spdiags(A(:),0,numel(A),numel(A))
B_full = diag(A)
isequal(full(B_sparse),B_full)