/ / Lesen Sie eine Matrix aus einer Datei in Scala Breeze - Scala, Scalala, Scala-Brise

Lesen Sie eine Matrix aus einer Datei in Scala Breeze - Scala, Scalala, Scala-Brise

Ich möchte eine tabulatorgetrennte Textdatei in einBrise Dichter Matrix. Ich sehe in der ScalaDoc, dass dies möglich sein sollte und es gibt eine ganze Reihe von I / O-Klassen, aber ich kann keine Beispiele finden und es ist schwer, die ScalaDoc zu verdauen.

Kann jemand ein einfaches Lese- / Schreibbeispiel bereitstellen?

Antworten:

3 für die Antwort № 1

Sie können verwenden scala.io.Source Tabulatorgetrennte Daten aus Datei einlesen.

Einige Beispieldaten:

0       1       2       3       4       5
6       7       8       9       10      11

Einer der DenseMatrix Konstruktoren haben diese Form new DenseMatrix(rows: Int, data: Array[V], offset: Int = 0) also werde ich das benutzen.

Holen Sie sich die Anzahl der Zeilen:

scala> scala.io.Source.fromFile("TabDelimited.txt").getLines.size
res 0:Int = 2

Dann hole die Daten als Array[Int]:

scala> scala.io.Source.fromFile("TabDelimited.txt").getLines.toArray.flatMap(_.split("t")).map(_.toInt)
res1: Array[Int] = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)

Dann res0 und res1 kann verwendet werden, um ein neues zu erstellen DenseMatrix.


3 für die Antwort № 2

Es gibt eine Möglichkeit, eine CSV-Datei in die Matrix zu lesen

import breeze.linalg._
import java.io._
val matrix=csvread(new file("your file localtion"),"$seperator")

api:http://www.scalanlp.org/api/breeze/index.html#breeze.linalg.package