作者peter0318 (阿瑋)
看板MATLAB
標題Re: [討論] 如何將區塊矩陣重排
時間Tue Feb 5 20:28:27 2013
※ 引述《janghang (人生如戲)》之銘言:
假設我有一些已知的矩陣A、B、C...etc,這些矩陣都是方陣而且維度相同
那我要怎麼排成如下的大矩陣:
[A B C D . . . ]
[B A B C . . . ]
[C B A B C . . ]
[D C B A B C . ]
[. . . . . . . ]
[. . . . . . . ]
(這個大矩陣的對角線元素A)
如果只有A、B、C,是可以用矩陣合併的技巧,拚成[ABC]
[BAB]
[CBA]
但因為有很多個,所以怎麼有系統化的排列呢?
我想用for迴圈,但是一直遇到dimension mismatch的問題
clear all;clc;
A=ones(3,3);
B=2*A;
C=3*A;
D=4*A;
E=5*A;
F=6*A;
G=7*A;
[n m]=size(A);
temp = [A B C D E F G];
Output = A;
for times=1:((7-1)/2) % 7 是指 A-G 7個 matix
X0 = temp( :, 1:(2*times+1)*n );
X1 = X0(:,(n+1):end-n);
Output = [ X0' [ X1; Output; X1(:,end:-1:1) ] X0(:,end:-1:1)' ]
end
試試看吧
--
推 listener323:實歲是從媽媽的身體裡出來開始算的02/08 13:59
→ listener323:虛歲是從爸爸的身體裡出來開始算的02/08 13:59
※ 編輯: peter0318 來自: 140.113.128.199 (02/05 21:07)
推 janghang:還蠻高招的,原po是有先用數學歸納法找規則嗎? 02/05 21:50
→ janghang:感覺沒帶幾個數字體會一下會不懂.. 02/05 21:50
→ peter0318:畫個幾層出來,再對照那個output(由內向外)大概就明瞭了 02/05 22:39