2017-07-10 38 views
0

我剛剛犰狳,想熟悉自己,所以我做了「測試」運行它如何使用Armadillo來計算特徵對?

int main(){ 
    double myMatrix[6][6]; 
    for (int i = 0; i < 6; i++){ 
     for (int j = 0; j < 6; j++){ 
      myMatrix[i][j] = i+2*j; 
     } 
    } 

    mat ARMA_L; 
    vec ARMA_eigenval; 
    mat ARMA_eigenvec; 

    for (int i = 0; i < 6; i++){ 
     for (int j = 0; j < 6; j++){ 
      ARMA_L(i,j) = myMatrix[i][j]; 
     } 
    } 
    eig_gen(ARMA_eigenval, ARMA_eigenvec, ARMA_L); 
    return 0; 
} 

當我嘗試編譯,它說沒有函數調用eig_gen() 但文檔但是,好像我正在做我應該做的事情。

+0

你有'的#include '? – ks1322

+0

我做到了。我確實包括#include 並使用名稱空間arma並使用namespace std; .....等 – user355843

回答

1

您使用的錯誤類型爲eig_gen()函數。 ARMA_eigenvalARMA_eigenvec應分別爲cx_veccx_mat

cx_vec ARMA_eigenval; 
cx_mat ARMA_eigenvec; 

documentation例如:

mat A = randu<mat>(10,10); 

cx_vec eigval; 
cx_mat eigvec; 

eig_gen(eigval, eigvec, A); 
+0

即使我確實改變了它cx_vec和cx_mat,我得到這個奇怪的編譯錯誤testing5.cpp :(文本$ _ZN4arma6lapack4geevIdEEvPcS2_PiPT_S3_S5_S5_S5_S3_S5_S3_S5_S3_S3 _ [_ ZN4arma6lapack4geevIdEEvPcS2_PiPT_S3_S5_S5_S5_S3_S5_S3_S5_S3_S3 _] + 0x8c):未定義的引用'dgeev_」 – user355843

+1

這是一個鏈接器錯誤,不編譯錯誤。你需要像這樣鏈接到犰狳庫:'g ++ testing5.cpp -larmadillo'。 – ks1322

+0

我如何鏈接Dev-C++? – user355843