Java 细化二维阵列

Java 细化二维阵列,java,arrays,for-loop,multidimensional-array,Java,Arrays,For Loop,Multidimensional Array,我有代码将两个数组乘以一个6x6和一个3x3,但是当我需要它在4x4 2D数组中时,输出是在一个6x6 2D数组中 输出如下所示: [20, 0, 10, 10, 0, 20] [20, 0, 10, 10, 0, 20] [20, 0, 10, 10, 0, 20] [20, 0, 10, 10, 0, 20] [20, 0, 10, 10, 0, 20] [20, 0, 10, 10, 0, 20] 当我需要它看起来像这样的时候 [0, 10, 10, 0] [0, 10, 10, 0]

我有代码将两个数组乘以一个6x6和一个3x3,但是当我需要它在4x4 2D数组中时,输出是在一个6x6 2D数组中

输出如下所示:

[20, 0, 10, 10, 0, 20]
[20, 0, 10, 10, 0, 20]
[20, 0, 10, 10, 0, 20]
[20, 0, 10, 10, 0, 20]
[20, 0, 10, 10, 0, 20]
[20, 0, 10, 10, 0, 20]
当我需要它看起来像这样的时候

[0, 10, 10, 0]
[0, 10, 10, 0]
[0, 10, 10, 0]
[0, 10, 10, 0]
我是否需要重新设计循环代码,或者我是否可以创建一个新的循环,用当前输出的中间部分填充数组

由于剽窃规则,我无法发布代码,但我不输出4x4的原因是因为我不断出现越界错误


提前感谢

尝试此代码示例,将其作为示例
由于您无法显示代码,希望这对您有用

int firstarray[][] = {{20, 0, 10, 10, 0, 20}, {20, 0, 10, 10, 0, 20}, {20, 0, 10, 10, 0, 20}, {20, 0, 10, 10, 0, 20}, {20, 0, 10, 10, 0, 20}, {20, 0, 10, 10, 0, 20}};

int secondarray[][] = {{0, 10, 10, 0}, {0, 10, 10, 0}, {0, 10, 10, 0}, {0, 10, 10, 0}};

/* Create new 2d array to store the multiplication result using the original arrays' lengths on row and column respectively. */


int [][] resultArray = new int[firstarray.length][secondarray[0].length];


/* Loop through each and get the product, then sum up and store the value */

for (int i = 0; i < firstarray.length; i++) { 
for (int j = 0; j < secondarray[0].length; j++) { 
    for (int k = 0; k < firstarray[0].length; k++) { 
        resultArray[i][j] += firstarray[i][k] * secondarray[k][j];
    }
}
}

/* Show the result */
display(resultArray);
intfirstarray[]={20,0,10,10,0,20},{20,0,10,10,0,20},{20,0,10,10,0,20},{20,0,10,10,10,0,20},{20,0,10,10,20},{20,0,10,0,20};
int secondarray[][]={{0,10,10,0},{0,10,10,0},{0,10,10,0},{0,10,10,0};
/*创建新的二维数组,分别使用原始数组的行和列长度存储乘法结果*/
int[]resultArray=new int[firstarray.length][secondarray[0.length];
/*循环遍历每一项并得到乘积,然后求和并存储值*/
对于(int i=0;i
创建一个少两行的数组,并使用Arrays.copyOfRange复制每行的中间部分:

public int[][] arrayMiddle(int[][] array) {
    int[][] out = new int[array.length - 2][];
    for (int i = 1; i < array.length - 1; ++i) {
        out[i-1] = Arrays.copyOfRange(array[i], 1, array[i].length - 1);
    }
    return out;
}
public int[]]arrayMiddle(int[]]array){
int[][]out=新的int[array.length-2][];
对于(int i=1;i
这是否回答了您的问题?这是一个包含2个矩阵的卷积乘法。根据规则:
m*nxn*o=m*o
有多大可能
6x6加3x3