Insert a matrix within a matrix
이전 댓글 표시
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?
채택된 답변
추가 답변 (2개)
Matt Fig
2011년 1월 29일
Assuming you meant
x = [a,b;c,d];
then
y = blkdiag(x,x)
PUST rahman
2012년 6월 19일
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
PUST rahman
2012년 6월 19일
The only advantage of this code is it tries to push the small matrix just in the middle of the bigger matrix.
카테고리
도움말 센터 및 File Exchange에서 Operating on Diagonal Matrices에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!