我剛剛將我的代碼從MATLAB移植到Java,我需要對矩陣進行特徵分解,具體而言,我只需要第一個k
值而不是完全分解。參與特徵值Java(JAMA)
但是,在JAMA中,特徵分解類計算完全特徵分解。我試圖修改它,但它會引發一些錯誤。還有另外一個類似的庫嗎?
在MATLAB中,有問題的功能是eigs(k,A)
我剛剛將我的代碼從MATLAB移植到Java,我需要對矩陣進行特徵分解,具體而言,我只需要第一個k
值而不是完全分解。參與特徵值Java(JAMA)
但是,在JAMA中,特徵分解類計算完全特徵分解。我試圖修改它,但它會引發一些錯誤。還有另外一個類似的庫嗎?
在MATLAB中,有問題的功能是eigs(k,A)
所以它只是返回所有特徵值的數組。你只想返回一個只有數組的前k個值的數組。在Java中有很多方法可以做到這一點。一種是將數組轉換爲ArrayList,獲取該列表的子列表,然後轉換回數組。
double[] mySubArray = new double[k];
for (int i=0; i < k; i++) {
subArray[i] = myFullArray[i];
}
順便說一句,這是他所指的圖書館:http://math.nist.gov/javanumerics/jama/doc/
我找到了這個,但從未使用它! http://code.google.com/p/matrix-toolkits-java/ –
你需要一個帶輪班的迭代方法。 – duffymo