Is possible put a vector as a diagonal of matrix ?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I mean, if a have:
A= [1 2];
can i get
B=
[1 2 0 0 0 0;
0 0 1 2 0 0;
0 0 0 0 1 2];
without any loop ?
0 Commenti
Risposte (3)
Andrei Bobrov
il 13 Feb 2014
Modificato: Andrei Bobrov
il 13 Feb 2014
blkdiag(A,A,A)
or
A = [1 2];
n = 4;
a1 = repmat({A},n,1);
out = blkdiag(a1{:});
0 Commenti
Azzi Abdelmalek
il 13 Feb 2014
n=3;
a=repmat([1 2 zeros(1,2*n-2)],n,1);
b=arrayfun(@(x) circshift(a(x,:),[0 2*(x-1)]),(1:n)','un',0);
out=cell2mat(b)
0 Commenti
Jos (10584)
il 13 Feb 2014
A = [1 2] ;
n = 3 ;
B = kron(eye(n),A)
2 Commenti
Jos (10584)
il 13 Feb 2014
You're welcome. If you're satisfied you can accept the answer so others know as well.
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!