1

Javaで行列の乗算を実行したかったのですが、速度は非常に優れている必要があります。

これを実現するために、Javaを介してRを呼び出すことを考えていました。

私はいくつかのQを持っていました:

  1. Javaを使用してRを呼び出すのは良い考えですか?はいの場合、共有できるコードサンプルはありますか?

  2. Javaで行列の乗算を行うために考えられる他の方法は何ですか?

アップデート:

会社を辞めた私の同僚は、行列の乗算を含むJavaコードを書くことを余儀なくされたC#プログラマーでした。

--彼は、Javaで独自のDataTableクラスを作成しました。

a)他のDataTableと並べ替えて結合するためのインデックスを作成します

b)行列の乗算。

したがって、基本的にコードをクリーンアップしたいと思います。Java内でRのようなものを使用すると、並べ替え、結合、行列の乗算などではなく、ビジネスロジックに集中できると思います。

4

5 に答える 5

4

Java での R の使用に関するスタックオーバーフローに関する質問がいくつかあります。これはJRIでは簡単です。例については、この質問を参照してください: R from within Java。コードを統合したら、R で行列の乗算を行うのは簡単です。2 つの行列aとがある場合、b単純に を呼び出しますa %*% b

純粋な Java のままで数学ライブラリを使用したい場合は、Colt ( JAMAから適応) の使用を検討することもできますが、 JAMAを直接使用する方がよい場合もあります。

もう 1 つのオプションは、ClojureのIncanter (特にParallel Coltのラッパーを提供する) を使用し、それを Java の Jar として呼び出すことです。Clojure を Java に統合するのは簡単です。行列の乗算だけが必要な場合は、R を使用するよりも簡単です。

于 2010-04-17T16:55:38.087 に答える
4

JAMAなどのマトリックス パッケージを使用できます。

于 2010-04-17T14:55:59.030 に答える
0

EJML は高速乗算のための有望な新しいもののようです。彼らは自分たちのサイトにベンチマークを持っており、行列の乗算が速いと主張していることを示しています。

于 2012-01-30T22:21:07.130 に答える
0

にもう一票jblas。すべてのメソッドは、期待どおりです。

于 2014-09-30T22:12:44.327 に答える
0

Parallel coltは、行列演算を実行するための効果的なライブラリです。

他の優れたマトリックス ライブラリには、jblasujmpが含まれます。

これらのパッケージはすべて有効です。jblas は私の個人的なお気に入りです。ujmpとは異なり、優れたドキュメントがあり、簡単です

于 2012-02-13T12:21:57.493 に答える