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(23);
matrix B(32);
matrix C = A @ B// Risultato: Matrice C di dimensioni [2,2]

 

2. Moltiplicazione di matrici (matrice × vettore)

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

3. Moltiplicazione di matrici (vettore × matrice)

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

4. Moltiplicazione scalare (vettore × vettore)

vector V1(13), V2(13);
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,