2015-02-06 74 views
1

我是新来的scala和微风。如果答案很明显,请原谅这个问题。我无法弄清楚如何编写一个稀疏矩阵来存档。这里是我正在谈论的一个例子:如何使用scala/breeze将稀疏矩阵写入文本文件?

import breeze.linalg.CSCMatrix 

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

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

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

回答

1

您可以使用csvwrite,它接受Matrix [Double]。

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=' ') 
+0

作为每[维基](https://github.com/scalanlp/breeze/wiki/Linear-Algebra-Cheat-Sheet)微风目前支持矩阵的IO在2种方式1. Java序列和2 .csv。现在,使用Double类型的Matrix的csvwrite,然后写入文件似乎是@Eshan M. Kermani指出的唯一解决方法 – Pramit 2016-07-18 00:46:08