-1

我正在使用 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无法实例化。什么是正确的方法?

4

1 回答 1

1

尽管投了反对票,但我相信这是一个合法的问题,我在阅读大量代码后找到了答案。

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

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

于 2015-08-15T18:04:57.657 回答