1

我想用Java做矩阵乘法,速度需要非常好。

我正在考虑通过java调用R来实现这一点。

不过我有几个问题:

  1. 使用 Java 调用 R 是个好主意吗?如果是,是否有可以共享的代码示例?

  2. 可以考虑在 Java 中进行矩阵乘法的其他方法是什么?

更新:

我从公司离职的同事是一名 C# 程序员,他被迫编写涉及矩阵乘法的 Java 代码。

-- 他用 Java 编写了自己的 DataTable 类,以便能够

a) 创建索引以与其他数据表进行排序和连接

b) 矩阵乘法。

所以,我想从根本上清理代码,并认为在 Java 中使用 R 之类的东西将帮助我专注于业务逻辑,而不是排序、连接、矩阵乘法等。

4

5 回答 5

4

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

于 2010-04-17T14:55:59.030 回答
4

关于在 Java 中使用 R 有几个 stackoverflow 问题。这对JRI来说很简单。请参阅此问题以获取示例:R from within Java。集成代码后,在 R 中进行矩阵乘法就很简单了。如果您有两个矩阵ab,您只需调用:a %*% b

如果您想继续使用纯 Java 并使用数学库,您也可以考虑使用Colt(改编自JAMA ),尽管直接使用JAMA可能会更好。

另一种选择是使用Clojure的Incanter(它提供了Parallel Colt的包装器等),然后将其作为 Java 的 Jar 调用。将 Clojure 集成到 Java 中是微不足道的,如果你想要的只是矩阵乘法,那对你来说比使用 R 更容易。

于 2010-04-17T16:55:38.087 回答
0

EJML 似乎是一个很有前途的快速乘法新方法。他们在他们的网站上有基准来展示他们声称的矩阵乘法的快速时间。

于 2012-01-30T22:21:07.130 回答
0

并行 colt是执行矩阵运算的有效库。

其他好的矩阵库包括jblasujmp

所有这些软件包都是有效的。jblas 是我个人的最爱。与 ujmp 不同,它具有良好的文档和直截了当

于 2012-02-13T12:21:57.493 回答
0

再投一票jblas。所有的方法都像你期望的那样。

于 2014-09-30T22:12:44.327 回答