2017-10-31 12 views
0

Verwenden Sie zweidimensionale Arrays zur Darstellung von Matrizen. Berechnen Sie das Produkt der Matrizen und speichern Sie die Daten in einem neuen zweidimensionalen Array. Drucken Sie das Produkt aus Matrix A Zeile 2 und Matrix B Spalte 1. Sie möchten A und B multiplizieren, um die Produktmatrix C zu finden. Nehmen Sie an, dass Sie (vorerst) nur den Wert in Zeile 2 berechnen möchten , Spalte 1, in der Produktmatrix C. Um jedoch den Wert in Zeile 2, Spalte 1, der Matrix C zu berechnen, müssen Sie das "Skalarprodukt" von A's gesamter Zeile 2 und B's gesamter Spalte 1 berechnen:Array-Index außerhalb der Grenzen: Matrix (Punktprodukt)

Mein Programm sagt mir, dass mein Array-Index bei 4 außerhalb der Grenzen mit einer Ausnahme ist, aber ich bin nicht sicher, wie es zu lösen

public class lab 
{ 
    public static void main(String[] args) 
    { 

     int[][] A = { {10,55,4,89,39} , {45,9,49,98,23} , {4,8,90,23,9} 
{8,32,80,2,31} }; 

     int[][] B = { {10,55,4,89,39} , {45,9,49,98,23} , {4,8,90,23,9} , {8,32,80,2,31} }; 

     int[][] C = new int[A.length][B[0].length]; 

     int sum = 0; 

     for (int i = 0 ; i < 5 ; i++) 
     { 
     sum = sum + A[2][i]*B[i][1]; 
     } 

     C[2][1] = sum; 

     System.out.println(sum); 

    } // end main 
} // end class 

der Ausgang sein soll:

+0

in welcher Zeile erhalten Sie diese Ausnahme? –

+0

bei: Summe = Summe + A [2] [i] * B [i] [1] – MRL

+0

B hat nur 4 Elemente. aber du versuchst auf 5 Elemente zuzugreifen. Ändern Sie die Schleife –

Antwort

0

Ihr beide das Array A & B haben 4 Elemente, die ausgeführt werden, die Schleife durch 5. Sie müssen wie unter der for-Schleife ändern.

for (int i = 0 ; i < 4 ; i++) 
0

Für Array B können Sie t get element of B[4][4]. Maximum will be B[3][4]. array indexes starts from 0. so you have elements. 0,1,2,3. when counter hits 4, you try to get the element B[4] and the index doesn t existieren. Deshalb erhalten Sie den Fehler. Überprüfen Sie das beigefügte Bild auch. Image Überprüfen Sie unter Bild

+0

Überprüfen Sie auch http://www.purplemath.com/modules/mtrxmult3.htm Ich denke, diese Matrix-Operation ist undefiniert – BRjava

Verwandte Themen