这应该很简单,但我无法在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原生的?
我有一个矩阵,给出如下:
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可以使用它吗?