Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: Matrizen

  1. #1
    Registriert seit
    04.04.2011
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    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
    Zitieren Zitieren Matrizen  

  2. #2
    Registriert seit
    23.05.2008
    Beiträge
    27
    Danke
    0
    Erhielt 14 Danke für 12 Beiträge

    Standard

    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.
    Geändert von Isch (07.04.2011 um 02:16 Uhr)

  3. #3
    Huber_STEVE ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.04.2011
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    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

  4. #4
    Registriert seit
    23.05.2008
    Beiträge
    27
    Danke
    0
    Erhielt 14 Danke für 12 Beiträge

    Standard

    Zitat Zitat von Huber_STEVE Beitrag anzeigen
    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.

  5. #5
    Huber_STEVE ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.04.2011
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dank dir Isch - getestet und funtzt!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •