Exception in Matrix aufgabe

  • Themenstarter Themenstarter gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

gast

Gast
Guten Abend,

ich habe mal ein Programm geschrieben, soweit stimmt eigentlich alles, nur wirft es mir eine Exception.
Ich hatte mit Exceptions noch nicht zu tun, deshalb weiß ich nicht wie ich sie behandel.

Kann mir bitte jmd. helfen

Code:
public class Matrix_8 {
    public static void compute (double [][]A, double [][]B){
        double [][]C= new double [8][8];
        for (int i=0; i<A.length;i++){
            for (int k=0; k<A.length;k++);{
                for (int j=0;j<A.length;j++){
                    C[i][j]=A[i][j]-B[j][i]+2;
      }
     }
    }
   }
    public static void main (String []args){ 
      {
        double [][]M1={ {2d,1d,0d,-1d},
                        {3d,2d,1d,0d},
                        {4d,3d,2d,1d,0d},
                        {5d,4d,3d,2d,1d,0d},
                        {6d,5d,4d,3d,2d,1d,0d},
                        {7d,6d,5d,4d,3d,2d,1d,0d},
                        {8d,7d,6d,5d,4d,3d,2d,1d},
                        {9d,8d,7d,6d,5d,4d,3d,2d},};
        
        double [][]M2={ {-1d,-2d,-3d,-4d,-5d},
                        {-1d,-2d,-3d,-4d},
                        {-1d,-2d,-3d},
                        {-1d,-2d},
                        {-1d}};
        Matrix_8.compute(M1,M2);
    }
}
}


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Matrix_8.compute(Matrix_8.java:8)
at Matrix_8.main(Matrix_8.java:28)
 
ArrayIndexOutOfBoundsException fliegt, wenn du versuchst auf elemente des Arrays zuzugreifen, die gar nicht da sind.

Bei deinem Anwendungsbeispiel müssen solche Exceptions offensichtlich fliegen, denn deine Matrizen kann man niemals als "rechteckig" oder gar "quadratisch" bezeichnen, selbst wenn man beide Augen zudrückt :lol:

Sorg dafür dass die matrizen vollständig 8x8 sind, und nicht so "angeknabbert" von allen seiten, dann wird's auch laufen. :toll:

übrigens: was soll die methode machen? sieht sehr mysteriös aus ???:L
 
1. da wo nix in der Matrix stehen soll schreib 0d hin

2. du rechnest irgendwas aus und weist es C zu.
C ist aber nur lokal deklariert worden und ist nach dem ausrechnen wieder weg -> gib C per return zurück
 
Die methode soll die summe der positven und negativen Werte als Summe ausgeben, und in der Aufgabe steht das die Werte sich zu Aij=i-j+2 ergeben.
Ich habe gedacht das ich die Methode richtig gemacht habe, aber es kann natürlich auch sein, das sie nicht das ist was ich eigentlich machen will.... Hmmm...*überleg*

Wie meinst du das das man die Matritzen niemals als rechteckig oder quadratisch bezeichnen kann?
Versteh ich nicht ganz??

Wie soll ich den meine Matritzen mit 8x8 füllen?
Ich habe doch nur die Werte die ich schon aufgeschrieben habe???

Ohje...jetzt werd ich depri...
 
Gast hat gesagt.:
Ohje...jetzt werd ich depri...
Nein, Timmy, spring nicht, das ist keine Lösung^^ :lol:

Wie meinst du das das man die Matritzen niemals als rechteckig oder quadratisch bezeichnen kann?
Versteh ich nicht ganz??

Wie soll ich den meine Matritzen mit 8x8 füllen?
Aj sag mal, wo hast du denn schon mal gesehen, dass matrizen die Form einer abgebrannten Waffeltorte haben?
Ich mein, was is'n das? :bahnhof: :
Code:
{{2d,1d,0d,-1d},
  {3d,2d,1d,0d},
  {4d,3d,2d,1d,0d},
  {5d,4d,3d,2d,1d,0d},
  {6d,5d,4d,3d,2d,1d,0d},
  {7d,6d,5d,4d,3d,2d,1d,0d},
  {8d,7d,6d,5d,4d,3d,2d,1d},
  {9d,8d,7d,6d,5d,4d,3d,2d},};
wegen dem Komma am ende ist das nicht mal kompilierbar... :shock:

Eine 8x8 Matrix mit etwa demselben inhalt würde etwa so aussehen:
Code:
{{2d,1d,0d,-1d,0d,0d,0d,0d},
  {3d,2d,1d,0d,0d,0d,0d,0d},
  {4d,3d,2d,1d,0d,0d,0d,0d},
  {5d,4d,3d,2d,1d,0d,0d,0d},
  {6d,5d,4d,3d,2d,1d,0d,0d},
  {7d,6d,5d,4d,3d,2d,1d,0d},
  {8d,7d,6d,5d,4d,3d,2d,1d},
  {9d,8d,7d,6d,5d,4d,3d,2d}};

ooh man^^
 
Juhu...habs hinbekommen...
ich denke mal das es so richtig ist...
Vielen dank für die Hilfe...DANKE DANKE DANKE...sonst wär ich echt am verzweifeln gewesen...
*happy*

Hier mein Meisterwer mit eurer Hilfe 🙂
Code:
public class Matrix_8 {
    public static void compute(double[][]A, double[][]B)
        {
                double[][]C=new double[8][8];
                
                for(int i=0; i<A.length; i=i+1)
                {
                        for(int k=0;k<B.length; k=k+1)
                        {
                                for(int j=0; j<A.length; j=j+1)
                                {
                                        C[i][k]=C[i][k]+A[i][j]*B[j][k]+2;
                                }
                                
                                System.out.println(C[i][k]);
                        }
                }
        }
    public static void main (String []args){ 
      {
        double [][]M1=  {{2d,1d,0d,0d,0d,0d,0d,0d}, 
                         {3d,2d,1d,0d,0d,0d,0d,0d}, 
                         {4d,3d,2d,1d,0d,0d,0d,0d}, 
                         {5d,4d,3d,2d,1d,0d,0d,0d}, 
                         {6d,5d,4d,3d,2d,1d,0d,0d}, 
                         {7d,6d,5d,4d,3d,2d,1d,0d}, 
                         {8d,7d,6d,5d,4d,3d,2d,1d}, 
                         {9d,8d,7d,6d,5d,4d,3d,2d}};
        
        double [][]M2={ {-1d,-2d,-3d,-4d,-5d,0d,0d,0d},
                        {-1d,-2d,-3d,-4d,0d,0d,0d,0d},
                        {-1d,-2d,-3d,0d,0d,0d,0d,0d},
                        {-1d,-2d,0d,0d,0d,0d,0d,0d},
                        {-1d,0d,0d,0d,0d,0d,0d,0d},
                        {0d,0d,0d,0d,0d,0d,0d,0d},
                        {0d,0d,0d,0d,0d,0d,0d,0d},
                        {0d,0d,0d,0d,0d,0d,0d,0d},};
        Matrix_8.compute(M1,M2);
    }
}
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben