Operador de producto matricial @

El operador @ en lenguaje MQL5 implementa la multiplicación de matrices según las reglas del álgebra lineal. Permite realizar el producto de matrices, vectores y el producto escalar de vectores.

Tipos soportados de elementos:.

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

Importante: los tipos de elemento de los operandos izquierdo y derecho deben coincidir.

Ejemplos de uso

1. Multiplicación de matrices (matriz × matriz)

matrix A(23);
matrix B(32);
matrix C = A @ B// Resultado: matriz C con un tamaño [2,2]

 

2. Multiplicación matricial (matriz × vector)

matrix M(23);
vector V(3);
vector R = M @ V// Resultado: vector R de 2 elementos

3. Multiplicación de matrices (vector × matriz)

matrix M(23);
vector V(12);
vector R = V @ M// Resultado: vector R de 3 elementos

4. Producto escalar (vector × vector)

vector V1(13), V2(13);
double r = V1 @ V2// Resultado: escalar

Observación

Las dimensiones deben seguir las reglas de multiplicación: número de columnas del primer operando = número de filas del segundo operando.

Si las dimensiones son incorrectas, se mostrará una excepción en tiempo de ejecución.

Los vectores de la izquierda se consideran horizontales (1×n).

Los vectores de la derecha se consideran verticales  (n×1).

La prioridad de la definición @ corresponde a la prioridad de multiplicación, es decir, para una entrada de la forma D=C+A@B, se realizará primero la multiplicación matricial T=A@B y después la suma elemento a elemento D=C+T.

Ver también

MatMul, GeMM, Kron, Dot,