Insert a matrix within a matrix
2 ビュー (過去 30 日間)
古いコメントを表示
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?
0 件のコメント
採用された回答
the cyclist
2011 年 1 月 29 日
Matt's solution does precisely what you ask. You might also like to know that in general, you can insert one array into another by indexing on the left-hand side of an assignment statement:
>> x = rand(2);
>> y = zeros(8);
>> y(5:6,3:4) = x;
0 件のコメント
その他の回答 (2 件)
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.
参考
カテゴリ
Help Center および 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!