Viết ma trận MxN (M hàng, N cột) vào tệp CSV:Ma trận sang CSV ở Scala
Lần đầu tiên, sử dụng bản đồ, công trình, nhưng tạo N tham chiếu đến bộ xâu chuỗi. Nó cũng viết một dấu phẩy không cần thiết ở cuối mỗi hàng.
def matrix2csv(matrix:List[List[Double]], filename: String) = {
val pw = new PrintWriter(filename)
val COMMA = ","
matrix.map(row => {
val sbuf = new StringBuffer
row.map(elt => sbuf.append(elt).append(COMMA))
pw.println(sbuf)
})
pw.flush
pw.close
}
nỗ lực thứ hai của tôi, sử dụng giảm, cũng làm việc nhưng trông vụng về:
def matrix2csv(matrix:List[List[Double]], filename: String) = {
val pw = new PrintWriter(filename)
val COMMA = ","
matrix.map(row => {
val sbuf = new StringBuffer
val last = row.reduce((a,b)=> {
sbuf.append(a).append(COMMA)
b
})
sbuf.append(last)
pw.println(sbuf)
})
pw.flush
pw.close
}
Bất kỳ đề xuất về một cách tiếp cận ngắn gọn hơn và thành ngữ? Cảm ơn.
Làm cách nào để bạn có được nỗ lực biên dịch thứ 2? Trong 'sbuf.append (b)', không có 'b' trong phạm vi. –
Cảm ơn Ben. Sửa lỗi đó. –