MatMul
MatMul 方法支持矩阵和向量的乘法,具有若干个重载。
矩阵乘以矩阵: matrix[M][K] * matrix[K][N] = matrix[M][N]
matrix matrix::MatMul(
|
向量乘以矩阵: horizontal vector[K] * matrix[K][N] = horizontal vector[N]
vector vector::MatMul(
|
矩阵乘以向量: matrix[M][K] * vertical vector[K] = vertical vector[M]
vector matrix::MatMul(
|
标量向量乘法: horizontal vector * vertical vector = dot value
scalar vector::MatMul(
|
参数
b
[输入] 矩阵或向量。
返回值
矩阵、矢量或标量,具体取决于所使用的方法。
注意
矩阵应兼容乘法,即第一个矩阵中的列数应等于第二个矩阵中的行数。 矩阵乘法不支持交换律:在一般情况下,将第一个矩阵乘以第二个矩阵的结果不等于将第二个矩阵乘以第一个矩阵的结果。
矩阵积由第一个矩阵的行向量和第二个矩阵的列向量的标量积的所有可能组合组成。
在标量乘法中,向量必须具有相同的长度。
当向量和矩阵相乘时,向量的长度必须与矩阵中的列数完全匹配。
以 MQL5 实现的朴素矩阵乘法算法:
matrix MatrixProduct(const matrix& matrix_a, const matrix& matrix_b)
|
矩阵乘法示例
matrix a={{1, 0, 0},
|
水平向量乘以矩阵的示例
//+------------------------------------------------------------------+
|
矩阵如何乘以垂直向量的示例
//+------------------------------------------------------------------+
|
向量的标量(点)积示例
void OnStart()
|
参见