Scala如何乘以RowMatrix和BDM

时间:2017-02-24 05:21:17

标签: scala matrix linear-algebra

我试图在Scala中找到一种有效的方法来实现这一目标。

  1. 我有RowMatrix和BDM
  2. 我想创建一个函数乘法(Matrix Multiplication)
  3. 我的方法是获取RowMatrix A的行,然后转换为Matrix,然后将其与B相乘
  4. 我试图将类型设为Matrix,但我输了。

    A.rows.map{case (X) => convertToMatrix(X) * B }
    

    是否有一个函数我可以调用将我从A获取的行转换为Matrix?其次,我可以直接将它与B相乘得到A.multiply(B)吗?

    我试图将A中的行乘以矩阵B,但我收到此错误:

    scala> A.rows.map{case (v) => toBreezeVector(v).multiply(B)}
    <console>:41: error: value multiply is not a member of breeze.linalg.Vector[Double]
    

1 个答案:

答案 0 :(得分:0)

Scala有一个很好的库ScalaNLP,它为矩阵运算提供了DenseMatrix(它不是BreezeDenseMatrix)类。 ScalaNLP可以使用BLAS本机实现来执行矩阵乘法。 它真的很快。