从给定的向量创建矩阵

3
我在将一个向量分割成一个给定边长的二维矩阵时遇到了问题。例如,给定向量{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12},可以将行数(3)和列数(4)转换为{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}。
目前,代码只是将整个向量按照指定行数打印在一个数组中。
int[][] reshape(int[] vector, int row, int col) {
        if (!isReshapable(vector.length, row, col)) {
            return null;
        } else {
            int[][] matrix = new int[row][col];
            for (int i = 0; i < row; i++) {
                for (int j = 0; j < col; j++) {
                    Arrays.fill(matrix, vector);
                }
            }
            return matrix;
        }
    }    
1个回答

1
你正在迭代ij。你可以使用它们(以及vector中的位置),例如:
int p = 0;
int[][] matrix = new int[row][col];
for (int i = 0; i < row; i++) {
    for (int j = 0; j < col; j++, p++) {
        matrix[i][j] = vector[p];
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接