Я заметил, что Matlab действительно выполняет некоторую функцию матрицы, например, добавление 5 ко всем элементам массива n * n происходит почти мгновенно, даже если матрица велика, потому что вам не нужно перебирать петлю каждый элемент, делая то же самое в java, цикл for берет навсегда, если матрица велика.Матричные функции matlab в java
У меня есть два вопроса: есть ли эффективные встроенные классы в java для выполнения операций с матрицами, во-вторых, как я могу закодировать что-то, чтобы более эффективно обновлять все элементы большой матрицы в java.
Вы не можете сравнить циклы matlab с java-контуром, java намного быстрее. Без сомнения, цикл java все еще медленнее, чем специальная математическая библиотека, написанная на C. Но уверены ли вы, что ваша самая большая неэффективность находится в матричных операциях? Из моего опыта для тех же приложений, перенесенных в java из matlab, с матрицами среднего размера и без инверсии матрицы, совокупная производительность аналогична.Конечно, мы теряем производительность при умножении/добавлении матрицы, но мы получаем производительность во всем остальном, например, при отправке методов и gui. – Mikhail
Вот список функций Matlab и их эквивалент в EJML http://code.google.com/p/efficient-java-matrix-library/wiki/MatlabFunctions. Большинство из них - очень прямые конверсии. –