从给定的向量中创建矩阵

时间:2015-10-03 03:12:47

标签: java matrix vector

我在将矢量分成2D矩阵或给定边时遇到了麻烦。例如,给定向量{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 个答案:

答案 0 :(得分: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];
    }
}