矩阵 -> 块划分

Matrix -> blocks division

我想将一些矩阵加载到我的程序中,然后我想将它分成更小的块。 我想要的完全可以在下面的图片中看到:

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

红色方块中是我的 "blocks" 的 3 个示例,我想在其中划分整个矩阵。在这种情况下,每个块应该是(较小的)3x3 矩阵。我知道如何将它加载到二维数组中,但我应该怎么做?

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