Scala Breeze(数字处理库);如何将Int的DenseMatrix转换为DenseMatrix of Doubles?

时间:2014-01-22 13:03:24

标签: scala image-processing scala-breeze

使用Scala Breeze library

如何将breeze.linalg.DenseMatrixInt值的实例转换为DenseMatrix Double个(两个矩阵具有相同的维度)?

(我正在尝试使用Breeze在矩阵中获取图像/图片)

2 个答案:

答案 0 :(得分:5)

fotNelton的答案有效。另一种选择是:

dm.mapValues(_.toInt)

dm.values.map(_.toInt)

从Breeze 0.6开始,你也可以说:

convert(dm, Int)

答案 1 :(得分:2)

您可以使用DenseMatrix.tabulate

scala> val dm = DenseMatrix((1.0, 2.0), (3.0, 4.0))
dm: breeze.linalg.DenseMatrix[Double] =
1.0  2.0
3.0  4.0

scala> val im = DenseMatrix.tabulate(dm.rows, dm.cols)(dm(_,_).toInt)
im: breeze.linalg.DenseMatrix[Int] =
1  2
3  4