2013-02-14 20 views
5

में एक फ़ाइल से एक मैट्रिक्स पढ़ें, मैं एक ब्रीज़ डेंसमैट्रिक्स में एक टैब-सीमांकित टेक्स्ट फ़ाइल को पढ़ना चाहता हूं। मैं स्कालाडॉक में देखता हूं कि यह संभव होना चाहिए और आई/ओ कक्षाओं का एक पूरा सेट है, लेकिन मुझे कोई उदाहरण नहीं मिल रहा है और स्कैलाडोक को पचाना मुश्किल है।स्कैला ब्रीज़

क्या कोई साधारण पढ़ने/लिखने का उदाहरण प्रदान कर सकता है?

उत्तर

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) है।

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

फिर एक 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) 

फिर res0 और res1 एक नया DenseMatrix बनाने के लिए इस्तेमाल किया जा सकता

पंक्तियों की संख्या प्राप्त करें।

+2

धन्यवाद, हालांकि जब यह res1 में पढ़ने पंक्ति-प्रमुख के क्रम में था और निर्माता स्तंभ-प्रमुख की उम्मीद है। तो मैंने जो कन्स्ट्रक्टर इस्तेमाल किया था वह 'डेन्समैट्रिक्स (res1.size/res0) था। –

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

स्कैला एक केस-संवेदी भाषा है, "फ़ाइल" "फ़ाइल" होना चाहिए। "वैल मैट्रिक्स = सीएसवीड (नई फ़ाइल (" आपकी फाइल लोकेशन "), '$ सेपरेटर')" –