Insert a matrix within a matrix
Mostrar comentarios más antiguos
Im trying to insert a matrix within a matrix, such that, if
x=[a,d;c,d], then y=[a,b,0,0;c,d,0,0;0,0,a,b;0,0,c,d]. Basically, matrix X becomes the diagonals of of the zero matrix Y.
anyone in cyberland have an idea on how to do this?
Respuesta aceptada
Más respuestas (2)
Matt Fig
el 29 de En. de 2011
Assuming you meant
x = [a,b;c,d];
then
y = blkdiag(x,x)
PUST rahman
el 19 de Jun. de 2012
function R=insertMatrix(B,b)
% INPUT: B: Bigger matrix % b: small matrix that needs to put inside bigger matrix, B %OUTPUT: R: Resultant matrix % Example: % B=zeros(10,10); b=ones(5,5); % R=insertMatrix(B,b);
[P,Q]=size(B);
fx=floor(P/2)-floor(size(b,1)/2);
fy=floor(Q/2)-floor(size(b,2)/2);
R=B;
for p=1:size(b,1)
for q=1:size(b,2)
R(fx+p,fy+q)=b(p,q);
end
end
return;
1 comentario
PUST rahman
el 19 de Jun. de 2012
The only advantage of this code is it tries to push the small matrix just in the middle of the bigger matrix.
Categorías
Más información sobre Operating on Diagonal Matrices en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!