2

Javaで線形代数の問題を解決するためにojAlgoを使用しようとしています。既存の配列を使用してマトリックスを作成する「賢い」方法があるかどうかを尋ねています。

これは私の素朴なアプローチです:

final double[][] myArray = {
    { 1.1, 1.2, 1.3, 1.4, 1.5 },
    { 2.1, 2.2, 2.3, 2.4, 2.5 },
    { 3.1, 3.2, 3.3, 3.4, 3.5 }
};

final Builder<PrimitiveMatrix> myBuilder = PrimitiveMatrix.getBuilder(myArray.length, myArray[0].length);
for (int i = 0; i < myArray.length; i++) {
    for (int j = 0; j < myArray[0].length; j++) {
        myBuilder.set(i, j, myArray[i][j]);
    }
}

final PrimitiveMatrix myMatrix = myBuilder.build();
System.out.println(myMatrix);

これは機能しますが、毎回行うのは面倒です。まさにそれを行うクラスを作成し、それを実行するたびに呼び出すことができますが、もっと簡単なアプローチがあるのではないかと思います。

より簡単なアプローチはありますか?

4

1 に答える 1

2

本当に (不変の) BasicMatrix インスタンスを作成しますか? また、さまざまなマトリックス実装の選択とそれらのインスタンス化方法に関するojAlgo Getting Started wiki ページを読みましたか?

あなたを助けるかもしれないクラス/メソッド org.ojalgo.array.ArrayUtils#wrapAccess2D(double[][]) がありますが、それはあなたの次のステップが何であるかによって異なります...

...または、単に電話してみませんかPrimitiveMatrix.FACTORY.rows(myArray);

于 2015-08-25T11:31:48.713 に答える