访问Commons Math库中稀疏矩阵的非零元素

时间:2015-08-01 17:32:19

标签: java apache-commons-math

我使用Apache Commons Math库进行矩阵运算,因为它看起来很完整,尽管它绝对缺乏适当的文档。

import org.apache.commons.math3.linear.SparseFieldMatrix;  

//inside a function:  
    int n = 300;
    SparseFieldMatrix Y = new SparseFieldMatrix(ComplexField.getInstance(), n, n);
    // some code to fill values into Y

我见过方法Y.walkInRowOrder(FieldMatrixChangingVisitor<Complex>() );,我想我做了我想做的事情:列出包含每行元素的列。

但是我不知道如何使用它,因为FieldMatrixChangingVisitor无法实例化。什么是正确的方法?

1 个答案:

答案 0 :(得分:1)

尽管投票结果为负,但我认为这是一个合法的问题,我在大量代码阅读后找到了答案。

答案是,使用公共数学库的稀疏实现,不可能找到存储的稀疏矩阵的非零元素。相反,您需要循环所有行和列以“重新发现”哪些元素不为零(换句话说,哪些elmenet在内部存储结构中)。

因此,如果您正在阅读此内容,请考虑构建一个结构来映射您的稀疏矩阵索引,或者更改为另一个稀疏代数库。