-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 に答える