2013-02-14 16 views
5

タブ区切りのテキストファイルをBreeze DenseMatrixに読み込みたい。 ScalaDocにはこれが可能であり、I/Oクラス全体がありますが、例は見つからず、ScalaDocを消化するのは難しいです。Scala Breezeのファイルから行列を読み取る

誰かが簡単な読み書きの例を提供できますか?

答えて

3

scala.io.Sourceを使用すると、ファイルからタブ区切りのデータを読み取ることができます。

いくつかのサンプルデータ:

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

DenseMatrixコンストラクタの一つは、私はそれを使用します。このフォームnew DenseMatrix(rows: Int, data: Array[V], offset: Int = 0)を持っています。 Array[Int]としてデータを取得後

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

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) 

その後res0res1は新しいDenseMatrixを作成するために使用することができます

は、行の数を取得します。

+2

おかげで、RES1でそれを読むときには行優先順にあったとコンストラクタは、列優先期待していたが。だから私が使用したコンストラクタは 'DenseMatrix(res1.size/res0).t' –

3

はdensematrixにcsvファイルを読むための方法はあり

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

+0

scalaは大文字小文字を区別する言語であり、" file "は" File "でなければなりません。 "valマトリクス= csvread(新しいファイル(あなたのファイルlocaltion)、" $ seperator ")" –

関連する問題