在微风中切片的线性操作

时间:2015-11-06 15:40:17

标签: scala scala-breeze

以某种方式可以在微风中切割矩阵上的更新吗?我找不到参数op的隐含值。 微风0.11.2。

val idxs = Seq(0,1)
val x = DenseMatrix.rand(3,3)
val y = DenseMatrix.rand(3,3)
x(idxs,idxs)+= y(idxs, idxs) // cant find implicit conversion for += here.

使用DenseVectors的模拟代码可以正常工作。

val xv = DenseVector.rand(3)
val yv = DenseVector.rand(3)
x(idxs) += y(idxs)

以迭代方式更新行是一种丑陋的解决方法。

val idxs = IndexedSeq(0, 1)
val x:DenseMatrix[Double] = DenseMatrix.zeros(3, 3)
val y = DenseMatrix.rand(3, 3)
for(r<-idxs) {
  val slx = x(::, r)
  val sly = y(::, r)
  slx(idxs) += sly(idxs)
}

1 个答案:

答案 0 :(得分:2)

这是一种疏忽。请在github上打开一个问题。