- kron([1 0;0 1],A)
- kron([1 0;1 0],A)
- kron([1 0 0;0 0 1],A)
Repmat with pattern
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Does anyone know an efficient way of replicating a matrix in a predetermined pattern(such as diagonal or triangular)?
Some examples: 1. We have A=[1,2;3,4] and we want B=[A,zeros(2);zeros(2),A] 2. We have A=[1,2;3,4] and we want B=[A,zeros(2);A,A] 3. We have a=[1;2;3;4] and we want B=[a,zeros(4,1);zeros(4,1),a]
0 comentarios
Respuesta aceptada
Walter Roberson
el 20 de En. de 2012
That is, put a 1 for each copy of A that should appear, and put a 0 for each place 0's the same size as A should appear.
6 comentarios
Más respuestas (1)
Andrew Newell
el 20 de En. de 2012
For 1. you could use
B = blkdiag(A,A);
For 2, why not just use the command you gave?
B=[A,zeros(2);A,A] ;
For 3:
B=[a' zeros(1,4); zeros(1,4) a']'
EDIT: Here is a generalization of 1:
n = 3; % e.g.
Amat = repmat(A,n,1);
Acell = mat2cell(Amat,2*ones(1,n),2);
B = blkdiag(Acell{:})
Ver también
Categorías
Más información sobre Matrices and Arrays 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!