write matrix to file in eigen?

user189035 picture user189035 · Feb 29, 2012 · Viewed 19.5k times · Source

I am trying to learn C++ with the Eigen library.

int main(){
    MatrixXf m = MatrixXf::Random(30,3);
    cout << "Here is the matrix m:\n" << m << endl;
    cout << "m" << endl <<  colm(m) << endl;
    return 0;
}

How can I export m to a text file (I have searched the documentations and have not found mention of an writing function)?

Answer

cooky451 picture cooky451 · Feb 29, 2012

If you can write it on cout, it works for any std::ostream:

#include <fstream>

int main()
{
  std::ofstream file("test.txt");
  if (file.is_open())
  {
    MatrixXf m = MatrixXf::Random(30,3);
    file << "Here is the matrix m:\n" << m << '\n';
    file << "m" << '\n' <<  colm(m) << '\n';
  }
}