在Java中,我如何采取二维数组的值,并将其存储在另一个二维数组不同的行和列的大小?

克里昂:

我在做一个项目,我不得不从二维数组做一个矩阵。一的要求是隐蔽3×4 2D阵列(具有值存储在)至6X2 2D阵列(具有相同的值)?

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;
}

我试过这个代码,它重塑了数组,但只打印零的二维数组。

Wisthler:

你有什么是3x4的像一开始矩阵

+--+--+--+--+
|01|02|03|04|
+--+--+--+--+
|05|06|07|08|
+--+--+--+--+
|09|10|11|12|
+--+--+--+--+

要在一个6X2矩阵转换一样

+--+--+
|01|02|
+--+--+
|03|04|
+--+--+
|05|06|
+--+--+
|07|08|
+--+--+
|09|10|
+--+--+
|11|12|
+--+--+

要做到这一点,显然tab1[i][j] = tab2[i][j]是行不通的。您需要将两个数组之间进行转换的地址。乍一看,使用该行的取模和分裂的其余为山坳会做的伎俩。

就像是

public static void main(String[] args) {
        int[][] tab1 = new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};
        System.out.println(Arrays.deepToString(tab1));
        System.out.println("---------------------------");
        int size = tab1.length * tab1[0].length;
        for(int i = 1; i <= size; i++){
            int j = size % i;
            if(j == 0){
                convert(tab1, i, size/i);
            }
        }

    }

    private static void convert(int[][] tab1, int row, int col) {
        System.out.println(String.format("converting to %dx%d", row, col));
        int[][] tab2 = new int[row][col];
        for(int i = 0; i < row; i++){
            for(int j = 0; j < col; j++){
                int index = i*col + j;
                int newRow = index / tab1[0].length;
                int newCol = index % tab1[0].length;
                tab2[i][j] = tab1[newRow][newCol];
            }
        }
        System.out.println(Arrays.deepToString(tab2));
        System.out.println("---------------------------");
    }

这给输出

[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
---------------------------
converting to 1x12
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]
---------------------------
converting to 2x6
[[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12]]
---------------------------
converting to 3x4
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
---------------------------
converting to 4x3
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
---------------------------
converting to 6x2
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]]
---------------------------
converting to 12x1
[[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]]
---------------------------

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何选择二维 Numpy 数组中的行并将其存储到另一个数组中,以便一个数组保留给定列中具有最高值的行?

用另一个二维数组中的行替换 numpy 二维数组中的行

用另一个二维数组中的列替换二维 numpy 数组中的列

在另一个二维数组中查找 numpy 二维数组的行索引

如何检查二维数组是否在另一个二维数组中

查找某个值在二维数组中出现的次数并将该数字存储在另一个一维数组中

如何在JavaScript中检测二维数组的另一个值?

在另一个包含多个二维数组的数组中查找二维数组的最快方法

Numpy:如何在另一个二维数组中找到二维数组的参数

将二维数组的元素复制到另一个二维数组中

通过另一个不同大小的数组分配一个二维数组的子集

php检查一个二维数组中的所有值是否都在另一个二维数组中

Python:根据某些条件从另一个一维数组替换二维数组中的值

我如何复制一个二维数组,并添加一个新行存储在Java中列的总和?

将二维数组中的每个值乘以另一个二维数组中的对应值

如何在另一个函数中访问此二维数组?

用另一个二维数组索引一个二维数组

二维数组不同的列大小

在另一个二维数组中搜索数组

如何在java中的二维数组中插入一个值

将二维数组作为参数传递给函数并获取另一个二维数组

我正在尝试使用 Pandas 像一个不同的列表一样从二维数组和多列中获取唯一值列表

将元素从一个二维数组添加到另一个二维数组 Java

将二维数组元素复制到另一个具有其他大小的二维数组

根据它们在另一个二维数组中的存在,从二维数组中删除子数组(返回一个新的二维数组)

如何检查一个整数是否等于二维数组中的另一个?

从 C 中的另一个函数访问二维数组

用另一个图案替换二维数组中的图案

用另一个数组填充一个二维数组