Zauważyłem, że Matlab wykonuje niektóre funkcje macierzy bardzo szybko, na przykład dodając 5 do wszystkich elementów tablicy n * n dzieje się niemal natychmiast, nawet jeśli macierz jest duża, ponieważ nie trzeba przechodzić przez każdy element, robi to samo w java, pętla for trwa zawsze, jeśli macierz jest duża.Funkcje macierzy Matlab w java
Mam dwa pytania, czy istnieją wydajne wbudowane klasy w java do wykonywania operacji macierzowych, po drugie jak mogę napisać coś, aby bardziej efektywnie zaktualizować wszystkie elementy dużej macierzy w java.
Nie można naprawdę porównać pętli matlab z pętlą java, java jest znacznie szybsza. Bez wątpienia pętla java jest wciąż wolniejsza niż specjalna biblioteka Math napisana w C. Ale czy jesteś pewien, że twoja największa nieskuteczność jest w operacjach macierzy? Z mojego doświadczenia dla tych samych aplikacji przeniesionych do java z matlab, z macierzami średniej wielkości i bez inwersji macierzy, łączna wydajność jest podobna.Oczywiście, tracimy wydajność na mnożeniu/dodawaniu macierzy, ale zyskujemy wydajność na wszystkim innym, takim jak wysyłanie metod i gui. – Mikhail
Oto lista funkcji Matlaba i ich odpowiedników w EJML http://code.google.com/p/efficient-java-matrix-library/wiki/MatlabFunctions. Większość z nich to bardzo proste konwersje. –