C++ 犰狳:使用sp_垫

C++ 犰狳:使用sp_垫,c++,matrix,sparse-matrix,armadillo,C++,Matrix,Sparse Matrix,Armadillo,我对犰狳的稀疏矩阵有个问题。 我在我的计算机上安装了Armadillo库(我使用Ubuntu 12.10和Codeblock),我可以使用Armadillo的矩阵、特征值和其他函数,但当我使用例如: sp_mat D 或 sp_mat D(N,N) 为了将D声明为稀疏矩阵,我阅读了以下错误: diag_periodique.cpp:在函数“int main(int,char**)”中: diag_periodique.cpp:194:5:erreur:“sp_mat”未在此声明 范围诊断周期cp

我对犰狳的稀疏矩阵有个问题。 我在我的计算机上安装了Armadillo库(我使用Ubuntu 12.10和Codeblock),我可以使用Armadillo的矩阵、特征值和其他函数,但当我使用例如:

sp_mat D

sp_mat D(N,N)

为了将D声明为稀疏矩阵,我阅读了以下错误:

diag_periodique.cpp:在函数“int main(int,char**)”中: diag_periodique.cpp:194:5:erreur:“sp_mat”未在此声明 范围诊断周期cpp:194:12:erreur:expected';'在“D”之前 diag_periodique.cpp:195:5:erreur:'D'未在此范围内声明

我尝试使用shell(而不是代码块)和以下命令进行编译:

g++Prog.cpp-o Prog-l犰狳

但它也不起作用,我也犯了同样的错误

你知道有什么问题吗? 我需要构造一个大矩阵并得到它的本征值。如果没有稀疏矩阵,我有一个核心转储错误或类似的东西


谢谢

您需要包含必要的头文件,并告诉编译器
sp_mat
位于
名称空间arma
中。也就是说,尝试
arma::sp_mat D。Ubuntu的软件集合中有Armadillo的旧版本。犰狳的旧版本没有稀疏矩阵支持。删除Ubuntu版本的Armadillo,然后从手动安装Armadillo的最新版本。谢谢。事实上,这是犰狳的老版本。我编辑了新的,而且很有效。