MatMul
Die Methode MatMul, die die Multiplikation von Matrizen und Vektoren ermöglicht, hat mehrere Überladungen.
Multiplikation einer Matrix mit einer Matrix: Matrix[M][K] * Matrix[K][N] = Matrix[M][N]
matrix matrix::MatMul(
|
Multiplikation eines Vektors mit einem Vektor: horizontaler Vektor[K] * Matrix[K][N] = horizontaler Vektor[N]
vector vector::MatMul(
|
Multiplikation einer Matrix mit einem Vektor: Matrix[M][K] * vertikaler Vektor[K] = vertikaler Vektor[M]
vector matrix::MatMul(
|
Skalare Vektormultiplikation: horizontaler Vektor * vertikaler Vektor = Dot- Wert
scalar vector::MatMul(
|
Parameter
b
[in] Matrix oder Vektor.
Rückgabewert
Matrix, Vektor oder Skalar, je nach der verwendeten Methode.
Hinweis
Die Matrizen sollten für die Multiplikation kompatibel sein, d. h. die Anzahl der Spalten in der ersten Matrix sollte gleich der Anzahl der Zeilen in der zweiten Matrix sein. Die Matrixmultiplikation ist nicht kommutativ: Das Ergebnis der Multiplikation der ersten Matrix mit der zweiten ist im allgemeinen Fall nicht gleich dem Ergebnis der Multiplikation der zweiten Matrix mit der ersten.
Das Matrixprodukt besteht aus allen möglichen Kombinationen von Skalarprodukten der Zeilenvektoren der ersten Matrix und der Spaltenvektoren der zweiten Matrix.
Bei der Skalarmultiplikation müssen die Vektoren die gleiche Länge haben.
Bei der Multiplikation eines Vektors mit einer Matrix muss die Länge des Vektors genau der Anzahl der Spalten der Matrix entsprechen.
Naiver Algorithmus zur Matrixmultiplikation in MQL5:
matrix MatrixProduct(const matrix& matrix_a, const matrix& matrix_b)
|
Beispiel einer Matrix-Multiplikation
matrix a={{1, 0, 0},
|
Ein Beispiel für die Multiplikation eines horizontalen Vektors mit einer Matrix
//+------------------------------------------------------------------+
|
An example of how to multiply a matrix by a vertical vector
//+------------------------------------------------------------------+
|
Ein Beispiel für das Skalarprodukt (dot) von Vektoren
void OnStart()
|
Siehe auch