java - 在 Java 中,如何获取二维数组的值并将它们存储在另一个具有不同列和行大小的二维数组中?

标签 java arrays matrix multidimensional-array

我正在做一个项目,我必须从一个二维数组中创建一个矩阵。其中一项要求是将 3x4 二维数组(存储有值)转换为 6x2 二维数组(具有相同的值)?

public int[][] covertMatrix(int[][] ma, int r, int c) {
        rw = r;
        col = c;

        this.ma = new int[rw][col];
        for (int i = 0; i < rw; i++) {
            for (int j = 0; j < col; j++) {
                ma[i][j] = ma[i][j];    
            }
        }
        return ma;
}

我试过这段代码,它 reshape 了数组,但只打印了一个由零组成的二维数组。

最佳答案

此版本将值重新分配给新数组。

通过将单元格索引除以给出行的列来计算索引,然后计算其余的给出新列。

public int[][] covertMatrix(int[][] ma, int r, int c) {
    rw = r;
    col = c;
    int element = 0;
    int[][] ma2 = new int[rw][col];
    for (int i = 0; i < ma.length; i++) {
        for (int j = 0; j < ma[i].length; j++) {
           final int newRow = (element)/col; //integer division ignoring rest.
           final int newCol = (element)%col; // rest of the division.
           ma2[newRow][newCol] = ma[i][j];
           element++;
        }
    }
    this.ma = ma2;
    return ma2;
}



System.err.println(Arrays.deepToString(covertMatrix(new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12}},6,2)));
-> [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]]

关于java - 在 Java 中,如何获取二维数组的值并将它们存储在另一个具有不同列和行大小的二维数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54730750/

相关文章:

java - 如何在 Python 中生成 long 类型的 UUID(由 java 程序使用)?

java - 在 int[] 数组中查找最受欢迎的元素

c - C 中的 NULL 数组实际上包含什么?

arrays - 如何根据 MA​​TLAB 中的时间合并数据集?

java - 程序的运行时间

java - 使用 zxing 从 camera2 拍摄的照片中解码数据矩阵

c - 关于typedef中单实例数组的一些问题

c++ - 如何加速 R 代码在特定方向上移动矩阵元素 - Rccp?

matlab - 如何找到矩阵中重复的值及其所属的行?

java - 当我只能使用打印方法时,为什么 PrintWriter 经常与 FileOutputStream 一起使用