Insert a matrix within a matrix
Ältere Kommentare anzeigen
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?
Akzeptierte Antwort
Weitere Antworten (2)
Matt Fig
am 29 Jan. 2011
Assuming you meant
x = [a,b;c,d];
then
y = blkdiag(x,x)
PUST rahman
am 19 Jun. 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 Kommentar
PUST rahman
am 19 Jun. 2012
The only advantage of this code is it tries to push the small matrix just in the middle of the bigger matrix.
Kategorien
Mehr zu Operating on Diagonal Matrices finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!