Einzelnen Beitrag anzeigen

Mysterio08

Registriert seit: 11. Jan 2009
142 Beiträge
 
#1

Problem nach Matrizenmultiplikation

  Alt 26. Apr 2010, 15:47
Guten Tag,

ich lasse eine/n Nutzer/in in ein StringGrid, dessen Row- und ColCount er/sie bestimmen kann, Zahlen eingeben, die dann in ein dynamisches, zweidimensionales Array of Double eingelesen und als Matrizen multipliziert werden.
Der Code dafür sieht wie folgt aus:
Delphi-Quellcode:
procedure TMatrizen.MatrizenMultiplikation;
var i, j, Zeile, Spalte: Byte;
    MatrixA, MatrixB, MatrixE: Array of Array of Double;
begin
  //Hier steht für mein Problem unwichtiger Code
  ...
  //MatrixA * MatrixB (den anderen Fall, BxA, habe ich absichtlich hier weggelassen, das Prinzip ist das gleiche)
  if SAA = ZAB then begin
    //This is the part where the matrices are multiplied
    //Do for all rows
    repeat
       //Do for all cols
      repeat
         //Specific part of the multiplication
        for i := 0 to SAA-1 do
        begin
          MatrixE[Spalte, Zeile] := MatrixE[Spalte, Zeile] + MatrixA[i,Zeile]*MatrixB[Spalte,i]
        end;
        Inc(Spalte)
        until Spalte = SAA;
      Inc(Zeile);
      Spalte := 0
    until Zeile = ZAA;
  //Hier folgt weiterer, nicht so wichtiger Code
end;
Multipliziere ich zwei quadratische Matrizen, gibt es keine Probleme, alle Elemente werden richtig errechnet und ausgegeben.
Lauten die Dimensionien aber 3 kreuz 2 * 3 kreuz 3, dann bekomme ich die im Anhang mitgeschickte Fehlermeldung, sobald ich ein Element ausgeben will - aber nur, wenn ich vorher nicht zwei quadratische Matrizen multipliziert habe, denn sonst funktioniert es.
Meine Vermutung ist, dass es mit der Multiplikation zusammenhängen muss, allerdings weiß ich nicht wo. Wenn weiterer Code erwünscht ist, kann ich den auch noch zeigen.

mfg. Mysterio08
Miniaturansicht angehängter Grafiken
fehlermeldung_199.png  
  Mit Zitat antworten Zitat