building a diagonal matrix from another matrix!

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

1 commentaire

What are a,b,c, and d? scalars or matrices?
What do you mean by "too big"? Did you consider using sparse storage using, for instance, SPDIAGS?

Connectez-vous pour commenter.

 Réponse acceptée

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

Plus de réponses (0)

Catégories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by