如何使用scala / breeze将稀疏矩阵写为文本文件?

时间:2015-02-06 01:13:07

标签: scala matrix save apache-spark breeze

我是斯卡拉和微风的新手。如果答案显而易见,请原谅这个问题。我无法弄清楚如何将稀疏矩阵写入文件。这是我正在谈论的一个例子:

import breeze.linalg.CSCMatrix

val B = CSCMatrix.zeros[Int](4,4)
B(0,2) = 1

现在,我想将B保存为文本文件。

我已经考虑过将B的元素映射到一个字符串,然后写入文件,但这似乎是错误的。此外,我可以将其转换为密集矩阵并将其写入文件,但这似乎也是错误的。有趣的是,即使我将它转换为密集矩阵,在csvwrite工作之前它仍然必须是双打类型。 Arg ...请救火星/斯卡拉地狱。

1 个答案:

答案 0 :(得分:2)

您可以使用接受Matrix [Double]的csvwrite

import java.io.File
import breeze.linalg.{CSCMatrix, csvwrite}


val B = CSCMatrix.zeros[Double](4,4)
B(0, 2) = 1.0
csvwrite(new File("myCSCMatrix.txt"), B, separator=' ')