从2D减去三维数组

时间:2016-05-19 09:38:48

标签: java arrays

我有两个数据集,第一个是3D,第二个是2D。

如何实现两组的减法。

   import java.util.*;
   class test28{

   public static void main ( String[] args ) {
 int [][][] arr1 = {{{6,3,9,0},{8,6,5,3}}};
 int [][] arr2=  {{6,3,9,0},{8,6,5,3}};

     test28 test = new test28();

    System.out.println(test.subtract(arr1,arr2));

     }
  public static int [][] subtract(int[][][] a, int[][] b)  {

   int [][] diff = new int[a.length][a[0].length];

      for (int i = 0; i < a.length - 1; i++) {
        for ( int j=0; j<a[0].length; j++){
           for ( int k=0; k<a[0][0].length; k++) {

              diff[0][i] = a[i][j][k]- b[i][j];
        }
     }
   }

   return diff;

   }

 }

以下代码会产生错误:

我更改了diff实例化,然后我有indexoutofbound错误

在diff [0] [i] = a [i] [j] [k] - b [i] [j];

1 个答案:

答案 0 :(得分:0)

一个合理的解释如下:

 int [][] diff = new int[a[0].length][a[0][0].length];

    for ( int j=0; j<a[0].length; j++){
       for ( int k=0; k<a[0][0].length; k++)

          diff[j][k] = a[0][j][k]- b[j][k];

当然尺寸必须匹配,因此您必须执行该检查。

我没有看到这个目的。