我想在Java中进行矩阵乘法,速度需要非常好。
我正在考虑通过java调用R来实现这一点。
虽然我有几个Q:
使用Java调用R是个好主意吗?如果是,是否有可以共享的代码示例?
在Java中进行矩阵乘法的其他方法有哪些?
退出公司的同事是一名C#程序员,他被迫编写涉及矩阵乘法的Java代码。
- 他用Java编写了自己的DataTable类,以便能够
a)创建索引以与其他DataTables进行排序和连接
b)矩阵乘法。
所以,我想基本上清理代码,并认为在Java中使用类似R的东西将有助于我专注于业务逻辑而不是排序,连接,矩阵乘法等。
答案 0 :(得分:4)
您可以使用矩阵包,例如JAMA。
答案 1 :(得分:4)
关于在Java中使用R,有几个stackoverflow问题。使用 JRI 这很简单。请参阅此问题以获取示例:R from within Java。一旦集成了代码,在R中进行矩阵乘法是微不足道的。如果您有两个矩阵a
和b
,则只需拨打:a %*% b
。
如果你想留在纯Java并使用数学库,你也可以考虑使用Colt(改编自JAMA),尽管你可能会更好using JAMA directly 3}}
另一种选择是使用Incanter from Clojure(提供Parallel Colt的包装,除其他外),然后从Java中将其称为Jar。将Clojure集成到Java中是微不足道的,如果你想要的只是矩阵乘法,那么对你来说比使用R更容易。
答案 2 :(得分:0)
EJML似乎是快速乘法的一个很有希望的新方法。他们在他们的网站上有基准,以显示他们声称矩阵乘法的快速时间。
答案 3 :(得分:0)
答案 4 :(得分:0)
对jblas
的另一次投票。所有方法都像你一样期望它们。