Operatore prodotto di matrice @

L'operatore MQL5 @ implementa la moltiplicazione di matrici secondo le regole dell'algebra lineare. Consente di moltiplicare matrici e vettori, nonché di eseguire la moltiplicazione scalare dei vettori.

Tipi di elementi supportati:

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

Importante: I tipi di elementi negli operandi sinistro e destro devono corrispondere.

Esempi di utilizzo

1. Moltiplicazione di matrici (matrice × matrice)

matrix A(2, 3);
matrix B(3, 2);
matrix C = A @ B; // Risultato: Matrice C di dimensioni [2,2]

 

2. Moltiplicazione di matrici (matrice × vettore)

matrix M(2, 3);
vector V(3);
vector R = M @ V; // Risultato: vettore R di 2 elementi

3. Moltiplicazione di matrici (vettore × matrice)

matrix M(2, 3);
vector V(1, 2);
vector R = V @ M; // Risultato: vettore R di 3 elementi

4. Moltiplicazione scalare (vettore × vettore)

vector V1(1, 3), V2(1, 3);
double r = V1 @ V2; // Risultato: Scalare

Nota

Le dimensioni devono rispettare le regole della moltiplicazione: il numero di colonne del primo operando = il numero di righe del secondo.

In caso di errore di dimensione, un'eccezione sarà attivata al momento dell'esecuzione.

I vettori a sinistra sono considerati orizzontali (1×n).

I vettori a destra sono considerati verticali (n×1).

La priorità dell'operazione @ corrisponde alla priorità della moltiplicazione, cioè per un'entrata di D=C+A@B, si esegue la prima moltiplicazione matriciale T=A@B, seguita dal l'addizione elemento per elemento D=C+T.

Vedere anche

MatMul, GeMM, Kron, Dot,