簡體   English   中英

Java中的矩陣乘法

[英]Matrix multiplication in java

我想用Java進行矩陣乘法,並且速度必須非常好。

我當時想通過Java調用R來實現這一點。

我有幾個問題:

  1. 使用Java調用R是個好主意嗎? 如果是,是否可以共享任何代碼示例?

  2. 在Java中可以考慮采用其他哪些方法進行矩陣乘法?

更新:

我辭職的同事是C#程序員,他被迫編寫涉及矩陣乘法的Java代碼。

-他已經用Java編寫了自己的DataTable類,以便能夠

a)創建索引以對其他DataTable進行排序和聯接

b)矩陣乘法。

因此,我想從本質上清理代碼,並認為在Java中使用類似R的東西將幫助我專注於業務邏輯,而不是排序,聯接,矩陣乘法等。

您可以使用矩陣包,例如JAMA

關於將R與Java結合使用,有一些stackoverflow問題。 使用JRI很簡單。 參見以下示例示例: Java中的R。 集成代碼后,在R中執行矩陣乘法就很簡單了。 如果您有兩個矩陣ab ,則只需調用: a %*% b

如果您希望使用純Java並使用數學庫,也可以考慮使用Colt (從JAMA改編而成),盡管直接使用JAMA可能會更好。

另一個選擇是使用Clojure的Incanter (除其他功能外,它提供了Parallel Colt的包裝),然后從Java稱為Jar。 將Clojure集成到Java中很簡單,如果只需要矩陣乘法,那將比使用R更容易。

jblas再次投票。 所有方法都像您期望的那樣。

EJML似乎是一種有前途的快速乘法新方法。 他們在自己的站點上有基准測試,以顯示他們聲稱是矩陣乘法的快速時間。

並行colt是執行矩陣運算的有效庫。

其他好的矩陣庫將包括jblasujmp

所有這些軟件包都是有效的。 jblas是我個人的最愛。 與ujmp不同,它具有良好的文檔和直接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM