Ich habe festgestellt, dass Matlab einige Matrix-Funktion wirklich schnell zum Beispiel Hinzufügen von 5 zu allen Elementen eines n * n Array geschieht fast sofort, auch wenn die Matrix groß ist, weil Sie nicht durchlaufen müssen Jedes Element, das in Java dasselbe tut, dauert die For-Schleife für immer, wenn die Matrix groß ist.Matlab Matrix Funktionen in Java
Ich habe zwei Fragen, gibt es effiziente integrierte Klassen in Java für die Durchführung von Matrix-Operationen, zweitens, wie kann ich etwas kodieren, um alle Elemente einer großen Matrix in Java effizienter zu aktualisieren.
Sie können Matlab-Schleife nicht wirklich mit Java-Schleife vergleichen, Java ist viel schneller. Ohne Zweifel ist Java-Schleife immer noch langsamer als spezielle Math-Bibliothek in C geschrieben. Aber sind Sie sicher, dass Ihre größte Ineffizienz in den Matrix-Operationen ist? Aus meiner Erfahrung für die gleichen Anwendungen, die von Matlab auf Java portiert wurden, mit mittelgroßen Matrizen und ohne Matrixinversion, ist die kumulative Leistung ähnlich.Sicher, wir verlieren die Leistung bei der Matrixmultiplikation/-addition, aber wir bekommen Leistung bei allem anderen, wie Methodenversand und GUI. – Mikhail
Hier finden Sie eine Liste der Matlab-Funktionen und deren Entsprechung in EJML http://code.google.com/p/efficient-java-matrix-library/wiki/MatlabFunctions. Die meisten sind sehr direkte Conversions. –