Opérateur de produit matriciel @

L'opérateur MQL5 @ implémente la multiplication matricielle selon les règles de l'algèbre linéaire. Il permet de multiplier des matrices et des vecteurs, ainsi que la multiplication scalaire des vecteurs.

Types d'éléments supportés :

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

Important : Les types des éléments des opérandes gauche et droite doivent correspondre.

Exemples d'utilisation

1. Multiplication matricielle (matrice × matrice)

matrix A(23);
matrix B(32);
matrix C = A @ B// Résultat : Matrice C de taille [2, 2]

 

2. Multiplication matricielle (matrice × vecteur)

matrix M(23);
vector V(3);
vector R = M @ V// Résultat : Vecteur R de 2 éléments

3. Multiplication matricielle (vecteur x matrice)

matrix M(23);
vector V(12);
vector R = V @ M// Résultat : Vecteur R de 3 éléments

4. Multiplication scalaire (vecteur × vecteur)

vector V1(13), V2(13);
double r = V1 @ V2// Résultat : Scalaire

Note

Les dimensions doivent se conformer aux règles de la multiplication : le nombre de colonnes de la première opérande = le nombre de lignes de la seconde.

En cas d'erreur de dimension, une exception sera déclenchée au moment de l'exécution.

Les vecteurs de gauche sont considérés comme horizontaux (1 × n).

Les vecteurs à droite sont considérés comme verticaux (n × 1).

La priorité de l'opération @ correspond à la priorité de la multiplication, c'est-à-dire pour une entrée D=C+A@B, la première multiplication matricielle T=A@B est effectuée, suivie de l'ajout d'élément D=C+T.

Voir aussi

MatMul, GeMM, Kron, Dot,