【发布时间】:2025-12-02 17:40:01
【问题描述】:
我注意到 matlab 执行一些矩阵函数的速度非常快,例如,即使矩阵很大,向 n*n 数组的所有元素添加 5 也几乎立即发生,因为您不必遍历每个元素,执行在java中,如果矩阵很大,for循环需要永远。
我有两个问题,java 中是否有高效的内置类来进行矩阵运算,第二,我如何编写代码来更有效地更新 java 中大矩阵的所有元素。
【问题讨论】:
-
你不能真正比较matlab循环和java循环,java要快得多。毫无疑问,java 循环仍然比用 C 编写的特殊数学库慢。但是你确定你最大的低效率是在矩阵运算中吗?根据我对从 matlab 移植到 java 的相同应用程序的经验,具有中等大小的矩阵且没有矩阵求逆,累积性能是相似的。当然,我们在矩阵乘法/加法上失去了性能,但我们在其他所有方面都获得了性能,比如方法调度和 gui。
-
这里是 Matlab 函数列表及其在 EJML code.google.com/p/efficient-java-matrix-library/wiki/… 中的等效函数。大多数都是非常直接的转化。