我正在 Scala 中使用二维 Breeze 矩阵。在某些时候,我必须对两个矩阵进行逐元素除法。分母矩阵中的某些元素可能为零,从而导致结果中出现 NaN。
我可以遍历矩阵维度并将 0.0 替换为 > 0 的值。
但是有没有更简单的或 Scala 惯用的解决方案呢?
最佳答案
一步步:
val dm = DenseMatrix((1.0, 0.0, 3.0), (0.0, 5.0, 6.0))
dm :== 0.0
breeze.linalg.DenseMatrix[Boolean] =
false true false
true false false
dm(dm :== 0.0)
breeze.linalg.SliceVector[(Int, Int),Double] = breeze.linalg.SliceVector@2b
dm(dm :== 0.0) := 42.0
breeze.linalg.Vector[Double] = breeze.linalg.SliceVector@2b
dm
breeze.linalg.DenseMatrix[Double] =
1.0 42.0 3.0
42.0 5.0 6.0
关于scala - 如何根据某些条件替换 Scala 中微风矩阵的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43289341/