2015-04-22 76 views
1

我有一個非常大的矩陣大小爲16384 x 16。我需要從它獲得一個512 x 512矩陣。基質應當加入如下, 說L尺寸的基體16384 X 16.By默認L被設置爲低於如何從矩陣中分隔行?

L = [L1 
     L2 
     L3 
     . 
     . 
     L32]. 

我需要獲得L,使得即,G(即;新的512×512矩陣)

 G = [L1L2...L32] 

這裏每個L是512×16矩陣。起初,我嘗試了一個32x32的矩陣,並正確地獲得了結果,但我無法做到這一點大矩陣。我該怎麼辦?以下是我用過的代碼

 W1 = 32; 
     Ans1 = L(1:W1,:); 
     Ans2 = L(W1+1:end,:); 
     G = [Ans1,Ans2]; 

謝謝。

permute & reshape

回答

3

一種方法 -

cutlen = 512; %// "Cut" after every cutlen rows 
G = reshape(permute(reshape(L,cutlen,[],size(L,2)),[1 3 2]),cutlen,[]); 
+0

可我知道爲什麼我們應該使用[1 3 2]和尺寸(L,2)? – Roshni191

+0

謝謝你@Divakar我們的代碼工作就像一個魅力... – Roshni191

+1

@ Roshni191那麼'尺寸(L,2)'是用來重塑形成一個3D數組輸入數組,然後我們排列(重新排列尺寸)交換'3'(dim-3)和'2'(行)之間的尺寸。最後一步是重塑成二維數組。 – Divakar