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 № 1Sie 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