aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scalam/io/package.scala
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2012-10-18 12:47:14 +0200
committerJakob Odersky <jodersky@gmail.com>2012-10-18 12:47:14 +0200
commitccd005b60d87e800718fed605ef4ce2b226b942c (patch)
tree4c6dbc241c95e1bc4d8c5ac6edbb1dc7e6247b21 /src/main/scala/scalam/io/package.scala
parenta4625a6010de7bd32f791200c688a5b5bb9f7b78 (diff)
downloadscalam-ccd005b60d87e800718fed605ef4ce2b226b942c.tar.gz
scalam-ccd005b60d87e800718fed605ef4ce2b226b942c.tar.bz2
scalam-ccd005b60d87e800718fed605ef4ce2b226b942c.zip
lots of changes:
*refactor styles to seperate packages *add io support *add interpreter support (removes need for seperate matlab instance for every figure)) *add plotting syntactic sugar
Diffstat (limited to 'src/main/scala/scalam/io/package.scala')
-rw-r--r--src/main/scala/scalam/io/package.scala23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/main/scala/scalam/io/package.scala b/src/main/scala/scalam/io/package.scala
new file mode 100644
index 0000000..a5217de
--- /dev/null
+++ b/src/main/scala/scalam/io/package.scala
@@ -0,0 +1,23 @@
+package scalam
+
+import scalax.file.Path
+import breeze.linalg._
+
+package object io {
+
+ def load(path: Path, separator: String = "\\s"): DenseMatrix[Double] = {
+ val lines = path.lines().dropWhile(_.isEmpty).toArray
+ 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 rows: Array[Array[Double]] = elements.map(_.map(_.toDouble))
+ DenseMatrix(rows: _*)
+ }
+
+ def save(path: Path, m: DenseMatrix[Double]): Unit = {
+ path.createFile(createParents = true, failIfExists = false)
+ for (processor <- path.outputProcessor; out = processor.asOutput)
+ for (i <- 0 until m.rows) m(i, ::).valuesIterator.mkString(""," ","\n")
+ }
+
+} \ No newline at end of file