web-dev-qa-db-ja.com

Javaマトリックスライブラリ

ColtやEJMLなど、Javaの有名なマトリックスライブラリがMatLabと同様の機能を実際に提供しているかどうか疑問に思いましたか?たとえば、APIの簡単なメソッドの定義には、2つの行列/ベクトルを互いに加算または減算する場所が見つからないようです。これは、最も一般的な操作のようです。何か不足していますか?

25
Bober02

Apache Commons Mathライブラリを試してください。 org.Apache.commons.math3.linearパッケージには、必要な機能が含まれています。 ホームページ

13

線形代数用のいくつかのJavaライブラリは次のとおりです。

[〜#〜] edit [〜#〜]たぶん、あなたが知っているときはいつでもこのリストを拡張できます-世界は動き続けています:

注:個人的に:私は自分のプロジェクトでApache Commons MathとColtを使用しています(- http://www.finmath.net )。 commons mathは活発に開発されていますが、一部のタスク(固有値分解など)ではColtの方が高速であることがわかりました。そのため、基になるライブラリをすばやく切り替えることができる何らかのラッパーを使用します(方程式系の解法や固有値分解など、いくつかのことだけが必要です)。

32
Christian Fries

ファンクタとして関数型プログラミング機能をサポートする la4j ライブラリもあります。手動の高階関数でtransform()メソッドを使用できます。

2

COLTのインターフェイスは、一般的なOP assign(matrix, function) を提供します。これを使用して、行列とベクトルを加算または減算できます。

assign()のjavadocsが言うように:

関数の結果を各セルに割り当てます。 x[row,col] =function(x[row,col],y[row,col])

加算関数をfunctionとして使用することにより、行列を追加できます。

2
amit

this one を使用できます。それは非常にシンプルで、基本的なマトリックス操作を提供します。

2D行列とベクトルなどを追加/減算/乗算できます。

1
alexey28