matlab中的matlab矩阵函数

ano*_*non 5 java matlab

我注意到matlab确实很快就能完成一些矩阵函数,例如,即使矩阵很大,也会立即对n*n数组的所有元素添加5,因为你不需要遍历每个元素,在java中也是如此如果矩阵很大,for循环将永远存在.

我有两个问题,java中是否有高效的内置类用于执行矩阵运算,其次我如何编写代码来更有效地更新java中大矩阵的所有元素.

les*_*mal 9

只是偶然发现这个帖子,并认为我会把我的两分钱扔进去.我是EJML的作者,我也在研究java库的性能和稳定性基准.虽然确定算法的速度有几个问题,但Mikhail认为缓存是大型矩阵性能中非常重要的问题.对于较小的矩阵,库开销变得更加重要.

由于数组访问的开销,纯Java库比高度优化的c库慢,即使算法完全相同.一些图书馆通过调用本机代码解决了这个问题.你可能想看看

http://code.google.com/p/matrix-toolkits-java/

这正是如此.将内存从java复制到本机库会有一些开销,但对于大型矩阵,这是无关紧要的.

有关纯Java性能的基准测试(我正在研究的那个),请查看:

http://code.google.com/p/java-matrix-benchmark/

另一个基准是:

http://www.ujmp.org/java-matrix/benchmark/

这些基准测试中的任何一个都可以让您对大型矩阵的性能有所了解.


Joh*_*ood 7

柯尔特可能是最快的.

"Colt为Java中的高性能科学和技术计算提供了一套开源库.""例如,IBM Watson的Ninja项目表明,Java确实可以执行BLAS矩阵计算,其速度最高可达优化Fortran的90%."

JAMA!

"JAMA是Java的基本线性代数包.它提供了用于构造和操作真实密集矩阵的用户级类."

高效的Java矩阵Librar ÿ

"高效的Java矩阵库(EJML)是一个用于操作密集矩阵的线性代数库.它的设计目标是:1)尽可能提高小型和大型矩阵的计算效率,2)新手和专家都可以访问".