diff options
author | Jakob Odersky <jodersky@gmail.com> | 2012-10-18 12:47:14 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2012-10-18 12:47:14 +0200 |
commit | ccd005b60d87e800718fed605ef4ce2b226b942c (patch) | |
tree | 4c6dbc241c95e1bc4d8c5ac6edbb1dc7e6247b21 /src/main/scala/scalam/io/package.scala | |
parent | a4625a6010de7bd32f791200c688a5b5bb9f7b78 (diff) | |
download | scalam-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.scala | 23 |
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 |