繁体   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