5

我知道我可以将特征矩阵写入这样的文件:

  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;
  }

再读一遍最简单的方法是什么?这似乎不起作用:

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

我收到以下编译器错误:

error: cannot bind 'std::basic_istream<char>' lvalue to 'std::basic_istream<char>&&'
         file >> m;
4

1 回答 1

-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);
}

对较大的矩阵使用循环。

于 2017-03-02T19:01:03.190 回答