2012-02-29 14 views
12

Estoy tratando de aprender C++ con la biblioteca Eigen.escribir matriz en archivo en eigen?

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

¿Cómo puedo exportar m a un archivo de texto (He buscado las documentaciones y no han encontrado mención de una función de escritura)?

Respuesta

16

Si usted puede escribir en cout, funciona para cualquier 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'; 
    } 
} 
+2

lo que es Colm() se supone que haga? No funciona para mi – Ludi

0

escribí esta función:

void get_EigentoData(MatrixXf& src, char* pathAndName) 
    { 
      ofstream fichier(pathAndName, ios::out | ios::trunc); 
      if(fichier) // si l'ouverture a réussi 
      { 
      // instructions 
      fichier << "Here is the matrix src:\n" << src << "\n"; 
      fichier.close(); // on referme le fichier 
      } 
      else // sinon 
      { 
      cerr << "Erreur à l'ouverture !" << endl; 
      } 
    } 
+0

Merci, la respuesta anterior también estaba funcionando ... :) – user189035