如何从文件中读取特征矩阵?

Jan*_*egg 5 c++ file-io file eigen eigen3

我知道我可以在这样的文件中写一个特征矩阵:

  std::ofstream file("test.txt");
  if (file.is_open())
  {
    Eigen::Matrix<double, 5, 1, Eigen::DontAlign> m;
    m << 1, 2, 3, 4, 5;
    file << m;
  }
Run Code Online (Sandbox Code Playgroud)

什么是最简单的再次阅读方式?这似乎不起作用:

  std::ifstream file("test.txt");
  if (file.is_open())
  {
    Eigen::Matrix<double, 5, 1, Eigen::DontAlign> m;
    file >> m;
  }
Run Code Online (Sandbox Code Playgroud)

我得到以下编译器错误:

error: cannot bind 'std::basic_istream<char>' lvalue to 'std::basic_istream<char>&&'
         file >> m;
Run Code Online (Sandbox Code Playgroud)

Chr*_*her -1

单独初始化每个元素:

#include <fstream>

Eigen::Matrix<double, 5, 1, Eigen::DontAlign> m;
std::ifstream file("test.txt");
if (file.is_open()) {
    file >> m(0) >> m(1) >> m(2) >> m(3) >> m(4);
}
Run Code Online (Sandbox Code Playgroud)

对较大的矩阵使用循环。