BLAS中矩阵之间的元素乘法?

时间:2014-05-21 22:15:00

标签: c++ matlab matrix blas

我开始在c ++(特别是英特尔MKL)中使用BLAS函数来创建一些旧的Matlab代码的更快版本。

到目前为止它一直运行良好,但我无法弄清楚如何在2个矩阵上执行元素乘法(在Matlab中为A。* B)。

我知道gemv在矩阵和向量之间做了类似的事情,所以我应该将我的一个矩阵分解为vectprs并重复调用gemv吗?我认为这样可行,但我觉得应该为此操作内置一些东西。


1 个答案:

答案 0 :(得分:2)

使用Hadamard产品。在MKL中它是v?MUL。例如。双打:

with open("data/"+ name + "_" + timestamp + ".csv", "w") as result:
    result.write("time; data1; data2; data3 \n")`

    while True:
        timestamp = time.strftime("%H:%M:%S", time.localtime())
        data1,data2,data3 = device.fetchData()

        result.write(timestamp +";"+ str(data1) +";"+ str(data1) +";"+ str(data3) +"\n")
        time.sleep(seconds)

以Matlab表示法执行:

vdMul( n, a, b, y );

在您的情况下,您可以将矩阵视为向量。