Scala Breeze 隐式 CanMapValues
Scala Breeze implicit CanMapValues
我在 Scala 中使用 Breeze 库进行矩阵运算。一切看起来都不错,但在编译时找不到隐式:
could not find implicit value for parameter bf: breeze.linalg.support.CanMapValues[breeze.linalg.Matrix[Int],Int,Double,That]
有问题的函数是这样的:
import breeze.linalg._ // this is the only import
def writeMatrixToCsv(path: String, matrix: Matrix[Int]) = csvwrite(new File(path), matrix.mapValues(_.toDouble), separator = ',')
我不确定如何继续 - 我在 Breeze 代码中寻找默认的 CanMapValues 但找不到。我该如何解决这个问题?谢谢!
要解决该问题,您可以将 CanMapValues
类型的隐式参数添加到 writeMatrixToCsv
函数中。然后它会编译。我可以看到 Matrix
是一种特征,它不提供一般隐含的 CanMapValues
,因此您可能必须为将要使用的具体矩阵提供一个。
def writeMatrixToCsv(path: String, matrix: Matrix[Int])(
implicit bf:support.CanMapValues[Matrix[Int], Int, Double, Matrix[Double]]
) = csvwrite(
new File(path),
matrix.mapValues(_.toDouble),
separator = ','
)
CanMapValues 位于 support
package object
我在 Scala 中使用 Breeze 库进行矩阵运算。一切看起来都不错,但在编译时找不到隐式:
could not find implicit value for parameter bf: breeze.linalg.support.CanMapValues[breeze.linalg.Matrix[Int],Int,Double,That]
有问题的函数是这样的:
import breeze.linalg._ // this is the only import
def writeMatrixToCsv(path: String, matrix: Matrix[Int]) = csvwrite(new File(path), matrix.mapValues(_.toDouble), separator = ',')
我不确定如何继续 - 我在 Breeze 代码中寻找默认的 CanMapValues 但找不到。我该如何解决这个问题?谢谢!
要解决该问题,您可以将 CanMapValues
类型的隐式参数添加到 writeMatrixToCsv
函数中。然后它会编译。我可以看到 Matrix
是一种特征,它不提供一般隐含的 CanMapValues
,因此您可能必须为将要使用的具体矩阵提供一个。
def writeMatrixToCsv(path: String, matrix: Matrix[Int])(
implicit bf:support.CanMapValues[Matrix[Int], Int, Double, Matrix[Double]]
) = csvwrite(
new File(path),
matrix.mapValues(_.toDouble),
separator = ','
)
CanMapValues 位于 support
package object