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

标签 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;

最佳答案

分别初始化每个元素:

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

对较大的矩阵使用循环。

关于c++ - 如何从文件中读取特征矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25160057/

相关文章:

java - 我将如何将 JAR 文件复制到启动目录?

file-io - 挂接 NT dll 文件函数时出现问题!

c++ - recvfrom() 不返回接收到的字节数

c++ - 在未安装 Qt 的计算机上运行 Qt 应用程序。 QCamera 看不到可用的设备

c++ - 如何合并两个不同大小的 vector 对

c# - 如果文件在我的程序之外被修改,如何得到通知?

java - 在读取和写入文件时避免丢失换行符 (\n)

c++ - 使用 std::copy 从 ifstream 读取十六进制值序列

c - 为什么这个程序不打印在我的文件上?

c++ - ostream::write 或 ostream::operator<< 在什么情况下会失败?