使用colt java lib的'matrix too large'异常

时间:2012-01-19 10:33:43

标签: java sparse-matrix colt

我正在使用cern.colt.matrix。* lib进行稀疏矩阵计算..但似乎我一直遇到这个错误:

线程“main”中的异常java.lang.IllegalArgumentException:矩阵太大

我认为这是因为当nrows * ncols>时,构造函数抛出异常。 INTEGER.max

api:http://acs.lbl.gov/software/colt/api/cern/colt/matrix/impl/SparseDoubleMatrix2D.html exception:IllegalArgumentException - 如果rows< 0 ||列< 0 || (双)列*行> Integer.MAX_VALUE的。

我的行是:5787,cols是418032。

这在matlab中运行良好(矩阵加载很好,所有操作都有效)。我想知道如何解决这个问题?我应该使用差异稀疏矩阵lib还是我需要切割我的矩阵或存储矩阵作为SparseDoubleMatrix1D的行向量

感谢。

1 个答案:

答案 0 :(得分:2)

这里遇到了矩阵的实现问题。我怀疑你必须打破矩阵,但你可能会发现你需要更多的内存。

根据矩阵的稀疏程度,您只需要19 GB这个矩阵。