2015-01-13 18 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参数替换我,然后再调用三次函数。或者当然你可以复制粘贴三次内循环 –