Thema: Delphi Matrizen-Multiplikation

Einzelnen Beitrag anzeigen

krutho

Registriert seit: 12. Jun 2007
9 Beiträge
 
#7

Re: Matrizen-Multiplikation

  Alt 14. Jun 2007, 15:35
Danke für den Vorschlag, habs aber jetzt doch selbst hingekriegt (mehr oder weniger).
Hier erstmal meine Änderungen.
Delphi-Quellcode:
procedure TForm3.Matrixmul(Sender:TObject);

var matrixA: array of array of double;
      matrixB: array of array of double;
      matrixC: array of array of double;
      a,b,c,i,j,k:integer;

begin
      a:=StrToInt(EditA.Text);
      b:=StrToInt(EditB.Text);
      c:=StrToInt(Editb.Text);
      SetLength(matrixA,a,b);
      SetLength(matrixB,b,c);
      SetLength(matrixc,a,c);
        for i := 0 to a-1 do
            for j := 0 to c-1 do
            begin
              matrixc[i,j] := 0;
              SG3.Cells[j,i]:='0';
            end;
      For i:= 0 to SG1.RowCount-1 do
        for j:= 0 to SG1.ColCount-1 do
        begin
          matrixA[i,j]:=StrToFloat(SG1.Cells[j,i]);
        end;
      for i:= 0 to SG2.RowCount-1 do
        for j:= 0 to SG2.ColCount-1 do
        begin
          MatrixB[i,j]:=StrToFloat(SG2.Cells[j,i]);
        end;
        for i := 0 to SG1.RowCount-1 do
          for j := 0 to SG3.ColCount-1 do
            for k := 0 to SG2.RowCount-1 do
              begin
                matrixc[i,j] := matrixc[i,j] + (matrixa[i,k] * matrixb[k,j]);
                SG3.Cells[j,i]:=FloatToStr(matrixc[i,j]);
              end;

end;
In den meisten Fällen funzt das jetzt. Will ich nun jedoch z.B. eine 4x2
mit einer 2x4 Matrix multiplizieren, so erhalte ich eine neue Fehlermeldung.

"ungültige Zeigeroperation"

Was soll das denn bedeuten? Danke für eure Hilfe
  Mit Zitat antworten Zitat