【问题标题】:Intel MKL and Row multiplication英特尔 MKL 和行乘法
【发布时间】:2016-09-26 03:19:25
【问题描述】:

我有一个矩阵 S(n x m) 和一个向量 Sigma(n),我想将每一行 S(i) 乘以 Sigma(i)。

我想到了三件事: -> 将 Sigma 转换为方形对角矩阵并计算 S = Sigma * S,但似乎这些函数仅适用于一般矩阵或三角矩阵...... -> 在循环中使用 DSCAL 将每行乘以标量 Sigma[i] -> mkl_ddiamm,但对我来说似乎有点晦涩。

关于我应该如何实施的任何建议?谢谢!

【问题讨论】:

  • 您的问题类似于this question
  • 您好,我仍然希望将 S 矩阵作为输出,所以我不能将 S 和 Sigma 相乘,还是我错了?更正式地说,我想将 S 与特征值 Sigma[0...n-1] 的对角矩阵相乘。

标签: c intel-mkl


【解决方案1】:

MKL/BLAS 没有为它提供函数是一个非常简单的操作。您可以使用 for 循环自己实现它。

for(int i=0; i<nrow; ++i) {
  for(int j=0; j<ncols; ++j) {
    s[i][j] += sigma[i];
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-19
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 2016-07-14
    • 1970-01-01
    相关资源
    最近更新 更多