gpt4 book ai didi

scala - 如何根据某些条件替换 Scala 中微风矩阵的元素?

转载 作者:行者123 更新时间:2023-12-04 22:56:34 25 4
gpt4 key购买 nike

我正在 Scala 中使用二维 Breeze 矩阵。在某些时候,我必须对两个矩阵进行逐元素除法。分母矩阵中的某些元素可能为零,从而导致结果中出现 NaN。

我可以遍历矩阵维度并将 0.0 替换为 > 0 的值。

但是有没有更简单的或 Scala 惯用的解决方案呢?

最佳答案

一步步:

  • 使用示例矩阵:
    val dm = DenseMatrix((1.0, 0.0, 3.0), (0.0, 5.0, 6.0))
  • 找出哪些元素等于 0.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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com