armadillo C++:无法将浮点2D数组写入fmat



我有一个2浮点的2D数组和1D数组。我想创建fmat变量,并将2D数组写入其中,然后将1D数组写入向量,然后使用高斯消去法求解。当我尝试将2d Array写入变量时,我得到的结果是:其他分割故障中的[matrix 1:0]

fmat A;
for(int i=0; i<elements+1; ++i)
{
    for(int j=0; j<elements+1; ++j)
        A << globalMatrix[i][j];
    A << endr;
}
cout<<"MATRIXnn";
A.print();
fvec B(elements+1);
for(int i=0;i<elements+1;++i)
    B=loadVec[i];
cout<<B;

fmat类不是流,因此不能在循环中使用<<操作。相反,只需将元素跨接复制即可。您还需要记住,Armadillo以列主顺序存储矩阵(为了与LAPACK兼容)。有关访问元素的更多信息,请参阅Armadillo文档。

fmat A(elements+1, elements+1, fill::zeros);
for(unsigned int i=0; i<elements+1; ++i)
for(unsigned int j=0; j<elements+1; ++j)
  {
  A(i,j) = globalMatrix[i][j];
  }
A.print("A:");

fvec B(elements+1);
for(unsigned int i=0; i<elements+1; ++i)
  {
  B(i) = loadVec[i];
  }
B.print("B:");

最新更新