2015-05-05 113 views
0

我試圖用犰狳分解由整數矩陣(即arma::Mat<int>)爲特徵向量
然而,它總是給我編的錯誤無論怎樣我把作爲輸入矩陣和輸出矢量/矩陣型
它的工作原理,當我作爲arma::Mat<std::complex<double>>
聲明輸入矩陣爲arma::Mat<double>,輸出向量(特徵值)爲arma::Col<std::complex<double>>和輸出矩陣(特徵向量)我已經使用int和/或std::complex<int>作爲類型的輸入和輸出,但是設法他們都沒有工作。
有沒有一種方法可以分解整數值的矩陣?
謝謝犰狳整數特徵分解

+0

什麼編譯錯誤? – kylecorver

+0

@kylecorver如果我使用'std :: complex '作爲類型獲得不受支持的類型和'不匹配類型'
如果我使用'int'我得到'arma :: Col 不是從arma :: Col < std :: complex <_Tp>>' –

回答

0

首先使用conv_to函數將整數矩陣轉換爲雙重矩陣。例如,imat A = ...; mat B = conv_to<mat>::from(A);。然後你可以對轉換後的矩陣進行特徵分解。

+0

我絕對要轉換嗎?無論如何要做到這一點,而不轉換爲雙? –

+0

Armadillo使用LAPACK(或等效庫,如英特爾MKL)進行特徵分解。 LAPACK不支持整數矩陣。 – mtall

+0

哦,非常感謝 –