相关疑难解决方法(0)

从2d std :: vector初始化Eigen :: MatrixXd

这应该很简单,但我无法在Eigen文档中找到方法.

说我有一个2D矢量,即

std::vector<std::vector<double> > data

假设它充满了10 x 4数据集.

我如何使用这些数据来填写Eigen::MatrixXd mat.

显而易见的方法是使用这样的for循环:

#Pseudo code
Eigen::MatrixXd mat(10, 4);
for i : 1 -> 10
   mat(i, 0) = data[i][0];
   mat(i, 1) = data[i][1];
   ...
 end
Run Code Online (Sandbox Code Playgroud)

但是应该有更好的方式,这是Eigen原生的?

c++ eigen

8
推荐指数
1
解决办法
7470
查看次数

Eigen和std :: vector

我有一个矩阵,给出如下:

std::vector<std::vector<std::complex<double>>> A;
Run Code Online (Sandbox Code Playgroud)

我想将它映射到Eigen线性代数库,如下所示:

Eigen::Map<Eigen::MatrixXcd, Eigen::RowMajor> mat(A.data(),51,51);
Run Code Online (Sandbox Code Playgroud)

但代码失败了

error: no matching function for call to        
‘Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 1>::
Run Code Online (Sandbox Code Playgroud)

无论如何转换矢量的矢量,以便Eigen可以使用它吗?

c++ eigen

5
推荐指数
1
解决办法
2327
查看次数

标签 统计

c++ ×2

eigen ×2