2016-05-19 3 views
-3

У меня есть два набора данных, первый - 3D, а второй - 2D.Вычесть три матрицы из 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; 

    } 

} 

приведенный ниже код генерирует ошибку:

я изменил диф инстанцированный, то у меня есть indexoutofbound ошибку

на Diff [0] [I] = а [I ] [j] [k] - b [i] [j];

+0

Вы можете сообщить об ошибке? – kazu

+1

Не могли бы вы объяснить, что вы подразумеваете под «разностью массивов»? –

+0

Какова ваша цель, чтобы вычесть два массива? – sotondolphin

ответ

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

Конечно размеры должны соответствовать, так что вы должны выполнить эту проверку.

Я не вижу цели этого.

+0

@ gpasch У меня есть методы в программе, которые заканчиваются этими двумя типами массивов, один из которых имеет три измерения, два других. –

Смежные вопросы