То, что я ищу, - это краткий способ получить неизменный двумерный массив X и одномерный массив Y без предварительного сканирования файла, чтобы определить размерыданные.
Данные, состоящие из строки заголовка, за которой следуют столбчатые двойные значения, имеют следующий формат
X0, X1, X2, ...., Y
0.1, 1.2, -0.2, ..., 1.1
0.2, 0.5, 0.4, ..., -0.3
-0.5, 0.3, 0.3, ..., 0.1
У меня есть следующий код (пока) для получения строкиз файла и токенизации каждой строки через запятую, чтобы получить образцы.В настоящее время он не заполняет массивы X и Y и не присваивает значения num и dimx
val X = new Array[Array[Double]](num,dimx)
val Y = new Array[Double](num)
def readDataFromFile(filename: String) {
var firstTime = true
val lines = fromFile(filename).getLines
lines.foreach(line => {
val tokens = line split(",")
if(firstTime) {
tokens.foreach(token => // get header titles and set dimx)
firstTime = false
} else {
println("data")
tokens.foreach(token => //blah, blah, blah...)
}
})
}
Очевидно, что это проблема, потому что, хотя я могу обнаруживать и использовать dimx на лету, я не знаю num a priori .Также повторяющиеся токены. Foreach не очень элегантны.Я мог бы сначала отсканировать файл и определить размеры, но это похоже на неприятный путь.Есть ли способ лучше?Заранее спасибо