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

时间:2014-08-06 12:10:13

标签: c++ file file-io 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;
  }

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

  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;

1 个答案:

答案 0 :(得分:-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);
}

为更大的矩阵使用循环。