2017-02-24 55 views
0

我正试图在Scala中看到一种有效的方式来实现这一成就。Scala如何将RowMatrix和BDM相乘

  1. 我有一个RowMatrix和BDM
  2. 我想克里特岛的函数乘(矩阵乘法)
  3. 我的做法是让行RowMatrix A的,然后转换为Matrix,然后乘以与B

我试图让类型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] 

回答

0

Scala有所谓ScalaNLP一个好的图书馆,提供DenseMatrix(这不是BreezeDenseMatrix)班用于矩阵运算。 ScalaNLP可以使用BLAS本地实现来执行矩阵乘法。 它真的很快。

+0

我决定只是使用微风将BDM转换为矩阵,并使用矩阵乘法 –