2012-08-07 93 views
0

我正在尋找一種Java中的線性代數庫,它可以處理大型「稀疏」矩陣(比如說100萬),並在矩陣上執行像SVD,LU這樣的分解。JAVA中的大型稀疏矩陣特徵分解

我環顧四周,嘗試了COLT,但它只能處理矩陣達到固定數量的元素。

EJML網站也提到它將無法處理這個問題。 (http://code.google.com/p/efficient-java-matrix-library/wiki/FAQ)

我知道在C++中有可以處理這種大小的數據的軟件包,但是,我不能從Java移動,因爲我擁有圍繞Java構建的所有其他代碼。

有什麼想法?任何幫助是極大的讚賞!

回答

0

試着看la4j(線性代數爲Java)。它處理稀疏矩陣以及密集矩陣。所以,你可以嘗試這樣的事:

Matrix a = new CRSMatrix(...); // Compressed Row Storage format 
Matrix vd[] = a.decompose(Matrices.EIGEN_DECOMPOSITOR); // vd[0] = V, vd[1] = D 

因此,它正常工作與稀疏矩陣,但我不知道(1元X 1萬美元)的大小。