Is possible put a vector as a diagonal of matrix ?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (3)
Andrei Bobrov
el 13 de Feb. de 2014
Editada: Andrei Bobrov
el 13 de Feb. de 2014
blkdiag(A,A,A)
or
A = [1 2];
n = 4;
a1 = repmat({A},n,1);
out = blkdiag(a1{:});
0 comentarios
Azzi Abdelmalek
el 13 de Feb. de 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 comentarios
Jos (10584)
el 13 de Feb. de 2014
A = [1 2] ;
n = 3 ;
B = kron(eye(n),A)
2 comentarios
Jos (10584)
el 13 de Feb. de 2014
You're welcome. If you're satisfied you can accept the answer so others know as well.
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!