MatMul
La méthode MatMul, qui permet la multiplication de matrices et de vecteurs, comporte plusieurs surcharges.
Multiplication d'une matrice par une matrice : matrix[M][K] * matrix[K][N] = matrix[M][N]
matrix matrix::MatMul(
|
Multiplication d'un vecteur par une matrice : horizontal vector[K] * matrix[K][N] = horizontal vector[N]
vector vector::MatMul(
|
Multiplication d'une matrice par un vecteur : matrix[M][K] * vertical vector[K] = vertical vector[M]
vector matrix::MatMul(
|
Multiplication d'un vecteur par un scalaire : horizontal vector * vertical vector = dot value
scalar vector::MatMul(
|
Paramètres
b
[in] Matrice ou vecteur.
Valeur de Retour
Matrice, vecteur ou scalaire, selon la méthode utilisée.
Note
Les matrices doivent être compatibles pour la multiplication, c'est-à-dire que le nombre de colonnes dans la première matrice doit être égal au nombre de lignes dans la deuxième matrice. La multiplication matricielle est non commutative : le résultat de la multiplication de la première matrice par la seconde n'est pas égal au résultat de la multiplication de la seconde matrice par la première dans le cas général.
Le produit matriciel est constitué de toutes les combinaisons possibles de produits scalaires des vecteurs lignes de la première matrice et des vecteurs colonnes de la seconde matrice.
Dans la multiplication scalaire, les vecteurs doivent avoir la même longueur.
Lors de la multiplication d'un vecteur et d'une matrice, la longueur du vecteur doit correspondre exactement au nombre de colonnes de la matrice.
Algorithme naïf de multiplication matricielle en MQL5 :
matrix MatrixProduct(const matrix& matrix_a, const matrix& matrix_b)
|
Exemple de multiplication matricielle
matrix a={{1, 0, 0},
|
Un exemple de multiplication d'un vecteur horizontal par une matrice
//+------------------------------------------------------------------+
|
Un exemple de comment multiplier une matrice par un vecteur vertical
//+------------------------------------------------------------------+
|
Un exemple de produit scalaire (point) de vecteurs
void OnStart()
|
Voir aussi