2013-03-27 4 views
0

Я хочу, чтобы вычислить разницу между элементами 2 матрицы: пример:массив из двух размеров

s1 = tuple[0][0]-vector[0][0]+tuple[0][1]-vector[0][1] 
s2 = tuple[0][0]-vector[1][0]+tuple[0][1]-vector[1][1] 
s3 = tuple[0][0]-vector[2][0]+tuple[0][1]-vector[2][1] 

static double Distance1(double[][] tuple, double[][] vector) 
{ 
    double sumSquaredDiffs =0.0; 
    int i; 
    int j; 
    for(i=0; i<tuple.length;i++) 
     for(j=0; j<vector.length; j++){ 
      sumSquaredDiffs = tuple[i][0] - vector[j][0]+ tuple[i][1] - vector[j][1]; 
     } 
     return sumSquaredDiffs; 
    } 
} 

Я хочу результат, чтобы выглядеть следующим образом:

13.0 
125.0 
123.0 
10.0 
122.0 
120.0 

Может кто-то пожалуйста, помогите я исправлю эту функцию?

+0

вы имеете в виду вы хотите, чтобы вычесть одну матрицу из другого? –

+0

да, как в приведенном выше примере –

ответ

0

Вы можете выполнить следующие действия:

//Assuming that no. of rows and columns in both matrices are same 
static double Distance1(double[][] arr1, double[][] arr2) 
{ 
    double[][] result = new double[arr1.length][arr2[0].length]; 
    for (int i = 0 ; i < arr1.length ; i++) 
    { 
    for (int j = 0 ; j < arr1[i].length ; j++) 
    { 
     result[i][j] = arr1[i][j] - arr2[i][j]; 
    } 
    } 
//Printing Result 
for (int i = 0 ; i < result.length ; i++) 
{ 
    for (int j = 0 ; j < result.length ; j++) 
    { 
     System.out.print(result[i][j]+"\t"); 
    } 
    System.out.print("\n"); 
} 
} 
+0

Это моя проблема, строки и столбцы не совпадают между обоими матрицами –

+2

Если две матрицы не имеют одинакового количества строк и столбцов, то их нельзя вычесть ... Это фундаментальная правило вычитания матрицы .. !!! –

+0

ну, я хочу вычесть каждую строку из первой матрицы из всех строк во втором матрице. –

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