我刚拿到 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() 的函数 但是文档似乎我正在做我应该做的事情。
最佳答案
您为 eig_gen()
函数使用了错误的类型。 ARMA_eigenval
和 ARMA_eigenvec
应该分别是 cx_vec
和 cx_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);
关于c++ - 如何使用 Armadillo 计算特征对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45015593/