MatMul
El método MatMul para realizar el producto de matrices y vectores tiene varias sobrecargas.
Multiplicación de una matriz por una matriz: matrix[M][K] * matrix[K][N] = matrix[M][N]
matrix matrix::MatMul(
|
Multiplicación de un vector por una matriz: horizontal vector[K] * matrix[K][N] = horizontal vector[N]
vector vector::MatMul(
|
Multiplicación de una matriz por un vector: matrix[M][K] * vertical vector[K] = vertical vector[M]
vector matrix::MatMul(
|
Multiplicación escalar de vectores: horizontal vector * vertical vector = dot value
scalar vector::MatMul(
|
Parámetros
b
[in] Matriz o vector.
Valor retornado
Matriz, vector o escalar, dependiendo del método utilizado.
Observación
Las matrices a multiplicar deberán ser compatibles, el número de columnas de la primera matriz deberá ser igual al número de filas de la segunda matriz. La multiplicación de matrices es no conmutativa: la multiplicación de la primera matriz por la segunda matriz no es en general igual a la multiplicación de la segunda matriz por la primera.
El producto matricial consiste en todas las combinaciones posibles de los productos escalares de los vectores de fila de la primera matriz y los vectores de columna de la segunda matriz.
En la multiplicación escalar de vectores, sus longitudes deberán coincidir.
Al multiplicar un vector y una matriz, la longitud del vector deberá coincidir exactamente con el número de columnas de la matriz.
Algoritmo ingenuo de multiplicación de matrices en MQL5:
matrix MatrixProduct(const matrix& matrix_a, const matrix& matrix_b)
|
Ejemplo de multiplicación de matrices
matrix a={{1, 0, 0},
|
Ejemplo de multiplicación de un vector horizontal por una matriz
//+------------------------------------------------------------------+
|
Ejemplo de multiplicación de una matriz por un vector vertical
//+------------------------------------------------------------------+
|
Ejemplo de multiplicación escalar de vectores
void OnStart()
|
Ver también