寫一個m×n矩陣(M行,N列)爲CSV文件:矩陣以CSV斯卡拉
我第一次嘗試,利用地圖,工作,但創造的StringBuffer的ñ引用。它還在每行的末尾寫入不必要的逗號。
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
}
我的第二次嘗試,使用減少,也有效,但看起來笨重:
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
}
任何建議上更加簡潔,地道的做法?謝謝。
你如何獲得第二次編譯的嘗試?在'sbuf.append(b)'中,範圍中沒有'b'。 –
謝謝本。修正了。 –