2015-01-13 84 views
2

我想加載一些矩陣到我的程序中,然後我想把它分成更小的塊。 正是我想要的,可以看到下面的圖像:矩陣 - >塊劃分

http://postimg.org/image/aki19hjx9/ba463111/

在紅色方塊是我的「塊」中,我想分裂整個矩陣的3個例子。在這種情況下,每個塊應該是(較小的)3×3矩陣。我知道如何將它加載到2d數組中,但我應該怎麼做呢?

+0

您可以從[JavaFX或Swing](http://docs.oracle.com/javase/8/javase-clienttechnologies.htm)開始。 –

回答

2
int[][] bigMatrix = new int[9][9]; 
// initialize bigMatrix 

int[][][] smallMatrices = new int[3][3][3]; 

for (int i = 0; i < 3; i++) { 
    for (int j = 0; j < 3; j++) { 
     for (int k = 0; k < 3; k++) { 
      smallMatrices[i][j][k] = bigMatrix[3*i+j][3*i+k]; 
     } 
    } 
} 

// The submatrices are now in smallMatrices[i], 0 <= i < 3 
+1

感謝您的幫助! – Michael

+0

還有一個問題,爲什麼你把它全部放在一個3D數組中? @Samuel Peter – Michael

+0

它似乎是最簡潔的方法,但你也可以將兩個內部循環包裝在函數中,並用startIndex參數替換我,然後再調用三次函數。或者當然你可以複製粘貼三次內循環 –