aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2012-11-01 15:43:51 +0100
committerJakob Odersky <jodersky@gmail.com>2012-11-01 15:48:01 +0100
commit8d74b4b823b8ed1989e597adf88a12ab1eefe304 (patch)
tree707143baa6cd48ce743a013e5fb3a05f5ff7c4c2
parenta61adcf4190a58b2690cdb0bd9d6c0c9888c04a9 (diff)
downloadscalam-8d74b4b823b8ed1989e597adf88a12ab1eefe304.tar.gz
scalam-8d74b4b823b8ed1989e597adf88a12ab1eefe304.tar.bz2
scalam-8d74b4b823b8ed1989e597adf88a12ab1eefe304.zip
add save support to matrices
-rw-r--r--src/main/scala/scalam/package.scala18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/main/scala/scalam/package.scala b/src/main/scala/scalam/package.scala
index b8de338..0e57acc 100644
--- a/src/main/scala/scalam/package.scala
+++ b/src/main/scala/scalam/package.scala
@@ -34,25 +34,23 @@ package object scalam extends LowPriorityImplicits {
val separator = "\\s|,"
val elements: Array[Array[String]] = lines.map(_.split(separator))
require(elements.forall(_.length == elements(0).length), "Cannot load non-rectangular matrix. Check your data file.")
-
+
val linear = elements.transpose.flatten
new DenseMatrix(elements.length, linear.map(converter(_)))
}
}
-
+
implicit def intDenseIsLoadable = denseMatrixIsLoadable[Int](_.toInt)
implicit def doubleDenseIsLoadable = denseMatrixIsLoadable[Double](_.toDouble)
implicit def floatDenseIsLoadable = denseMatrixIsLoadable[Float](_.toFloat)
implicit def byteDenseIsLoadable = denseMatrixIsLoadable[Byte](_.toByte)
implicit def longDenseIsLoadable = denseMatrixIsLoadable[Long](_.toLong)
implicit def booleanDenseIsLoadable = denseMatrixIsLoadable[Boolean](_.toBoolean)
-
- /* implicit val string2Int: (String => Int) = (x: String) => x.toInt
- implicit val string2Double: (String => Double) = (x: String) => x.toDouble
- implicit val string2Char: (String => Char) = (x: String) => x.toChar*/
-
- //implicit val cv = (d: String) => d.toDouble
-
- //val m = scalam.io.load[DenseMatrix[Double]](scalax.file.Path(""))
+
+ implicit def denseMatrixIsSaveable = (m: DenseMatrix[_]) => new Saveable {
+ def save(out: scalax.io.Output) = {
+ for (i <- 0 until m.rows) m(i, ::).valuesIterator.mkString("", " ", "\n")
+ }
+ }
} \ No newline at end of file