Matrixproduktoperator @

Der MQL5-Operator @ implementiert die Matrixmultiplikation nach den Regeln der linearen Algebra. Er ermöglicht die Multiplikation von Matrizen und Vektoren sowie die Skalarmultiplikation von Vektoren.

Unterstützte Elementtypen:

  • float
  • double
  • complex<float>
  • complex<double>

Wichtig: Die Elementtypen der linken und rechten Operanden müssen übereinstimmen.

Anwendungsbeispiele:

1. Matrixmultiplikation (matrix × matrix)

matrix A(23);
matrix B(32);
matrix C = A @ B// Ergebnis: Matrix C mit der Größe [2,2]

 

2. Matrixmultiplikation (matrix × vector)

matrix M(23);
vector  V(3);
vector  R = M @ V// Ergebnis: Vektor R mit 2 Elementen

3. Matrixmultiplikation (vector x matrix)

matrix M(23);
vector  V(12);
vector  R = V @ M// Ergebnis: Vektor R mit 3 Elementen

4. Skalarmultiplikation (vector × vector)

vector V1(13), V2(13);
double r = V1 @ V2// Ergebnis: Scalar

Hinweis

Die Dimensionen müssen den Multiplikationsregeln entsprechen: Anzahl der Spalten im ersten Operanden = Anzahl der Zeilen im zweiten.

Im Falle eines Dimensionsfehlers wird zur Laufzeit ein Fehler ausgelöst.

Vektoren auf der linken Seite gelten als horizontal (1×n).

Vektoren auf der rechten Seite gelten als vertikal (n×1).

Die Priorität der @-Operation entspricht der Priorität der Multiplikation, d. h. für einen Eintrag von D=C+A@B wird zuerst die Matrixmultiplikation T=A@B ausgeführt, gefolgt von der elementweisen Addition D=C+T.

Siehe auch

MatMul, GeMM, Kron, Dot,