2017-07-10 43 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