Matrizen

Huber_STEVE

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

hat jemand schon Erfahrungen mit Matrizen Rechnungen in Codesys weil ich finde nirgends eine Martix Funktion oder sowas in der Richtung?
Würde z.B. eine 1x3 Matrix mit einer 3x1 Matrix multiplizieren.
Geht zwar über Arrays auch aber da müsst ich jedes Element des Arrays einzeln aufrufen usw...und da ich mit mehreren Matrizen und auch 7x3 Matrizen rechne wäre der Aufwand enorm...

im mom schaut es so aus
a11:=MATRIX_1[0];
a12:=MATRIX_1[1];
a13:=MATRIX_1[2];

b11:=MATRIX_2[0];
b12:=MATRIX_2[1];
b13:=MATRIX_2[2];

MATRIX_TEST[0]:=a11*b11+a12*b11+a13*b11;
MATRIX_TEST[1]:=a11*b12+a12*b12+a13*b12;
MATRIX_TEST[2]:=a11*b13+a12*b13+a13*b13;

danke im voraus :)
 
Hallo,

im Zweifelsfall würde ich, die allgemeine Rechenvorschrift zur Multiplikation zweier Matrizen hernehmen (zu finden z.B. unter http://de.wikipedia.org/wiki/Matrizenmultiplikation) und diese einfach in ein Programm umsetzen.

Falls ich mich nicht irgendwo vertippt haben, könnte das dann z.B. so aussehen:

Code:
a[1..l][1..m] : real;
b[1..m][1..n] : real;

c[1..l][1..n] : real;


for i:=1 to l do
    for j:=1 to n do
        c[i][j] := 0;
        for k:=1 to m do
            c[i][j] := c[i][j] + a[i][k] * b[k][j];  
        end_for;
    end_for;
end_for;
c = a*b mit
a: lxm
b: mxn
c: lxn

Bei großen Matrizen, kann das allerdings ziemlich lange dauern und es bietet sich daher der Einsatz optimierter Algorithmen an (siehe weiterführende Wikipedia Links).

Edit:
Dir ist aber schon klar, das eine 1x3 Matrix multipliziert mit einer 3x1 Matrix eine 1x1 Matrix ergibt.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für diee rasche Antwort,
werd ich gleich mal testen!








Edit:
Bei Multiplikation muss ja n der Linken mit m der rechten Matrix übereinstimmen -> Resultat m der linken und n der rechten Matrix
Dann müsst ich in dem Fall den Code ändern. Danke fürs mitdenken :)
 
Edit:
Bei Multiplikation muss ja n der Linken mit m der rechten Matrix übereinstimmen -> Resultat m der linken und n der rechten Matrix
Dann müsst ich in dem Fall den Code ändern. Danke fürs mitdenken :)

Nein m ist jeweils gleich groß. (deshalb heißt es ja bei beiden m)

Beispiel:
l=3
m=4
n=5

C = A * B

Matrix A ist lxm also 3x4,
Matrix B ist mxn also 4x5,
Matrix C ist lxn also 3x5.
 
Zurück
Oben