我开始在 C++(特别是 Intel MKL)中使用 BLAS 函数来创建一些旧 Matlab 代码的更快版本。
到目前为止一切顺利,但我不知道如何对 2 个矩阵(Matlab 中的 A .* B)执行元素乘法。
我知道 gemv 在矩阵和向量之间做了类似的事情,所以我应该将我的矩阵之一分解为向量并重复调用 gemv 吗?我认为这可行,但我觉得应该为此操作内置一些东西。
使用哈达玛产品。在 MKL 中是 v?MUL。例如。双打:
vdMul( n, a, b, y );
用 Matlab 表示法执行:
y[1:n] = a[1:n] .* b[1:n]
在你的情况下,你可以将矩阵视为向量。