将矩阵分为四个子块

时间:2019-03-21 17:23:36

标签: java

我想在Java中按垂直和水平方向将矩阵平均分为四个子块(这里,我们假设m为偶数,且不为偶数)。

例如,我们有矩阵:

1 2 3 4 5 6                  
7 8 9 1 2 8
1 2 3 4 5 6
4 5 6 7 8 9
1 4 7 2 5 8
3 6 9 7 2 5

我要显示的最后一个块是:

7 8 9
2 5 8
7 2 5

我如何在Java中解决此问题。

1 个答案:

答案 0 :(得分:0)

遍历矩阵的右下部分。这是方矩阵的示例。我相信您将能够使它比非右方象限更通用,或者比右下角获得其他象限。

public int[][] getQuadrantOfSquareMatrix(int[][] matrix) {
    int newDimension = matrix.length / 2;
    int[][] toReturn = new int[newDimension][newDimension];
    for (int i = 0; i < newDimension; i++) {
        for (int j = 0; j < newDimension; j++) {
            toReturn[i][j] = matrix[i + newDimension][j + newDimension];
        }
    }
    return toReturn;
}