MatMul
Método MatMul para determinar o produto de matrizes e vetores possui diversas sobrecargas.
Multiplicação de uma matriz por uma matriz: matrix[M][K] * matrix[K][N] = matrix[M][N]
matrix matrix::MatMul(
|
Multiplicação de um vetor por uma matriz: horizontal vector[K] * matrix[K][N] = horizontal vector[N]
vector vector::MatMul(
|
Multiplicação de uma matriz por um vetor: matrix[M][K] * vertical vector[K] = vertical vector[M]
vector matrix::MatMul(
|
Multiplicação escalar de vetores: horizontal vector * vertical vector = dot value
scalar vector::MatMul(
|
Parâmetros
b
[in] Matriz ou vetor.
Valor retornado
Matriz, vetor ou escalar, dependendo do método utilizado.
Observação
As matrizes multiplicadas devem ser compatíveis, o número de colunas da primeira matriz deve ser igual ao número de linhas da segunda matriz. A multiplicação de matrizes não é comutativa, a multiplicação da primeira matriz pela segunda não é igual à multiplicação da segunda matriz pela primeira.
O produto matricial consiste em todas as combinações possíveis de produtos escalares dos vetores linha da primeira matriz e dos vetores coluna da segunda matriz.
Com a multiplicação escalar, os vetores devem ter o mesmo comprimento.
Ao multiplicar um vetor e uma matriz, o comprimento do vetor deve corresponder exatamente ao número de colunas da matriz.
Algoritmo ingênuo de multiplicação de matrizes em MQL5:
matrix MatrixProduct(const matrix& matrix_a, const matrix& matrix_b)
|
Exemplo de multiplicação de matrizes
matrix a={{1, 0, 0},
|
Exemplo de multiplicação de um vetor horizontal por uma matriz
//+------------------------------------------------------------------+
|
Exemplo de multiplicação de uma matriz por um vetor vertical
//+------------------------------------------------------------------+
|
Exemplo de multiplicação escalar de vetores
void OnStart()
|
Ver também