00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef SIMPLEDATAWRITER_HPP_
00029 #define SIMPLEDATAWRITER_HPP_
00030
00031 #include "OutputFileHandler.hpp"
00032 #include "Exception.hpp"
00033
00034 #include <string>
00035 #include <fstream>
00036 #include <iostream>
00037 #include <sstream>
00038 #include <cassert>
00039
00047 class SimpleDataWriter
00048 {
00049
00050 public:
00060 SimpleDataWriter(std::string directory, std::string fileName, std::vector<std::vector<double> > data, bool cleanDirectory=true)
00061 {
00062 if(data.size()==0)
00063 {
00064 EXCEPTION("Data vector is empty");
00065 }
00066
00067 for(unsigned i=0; i<data.size(); i++)
00068 {
00069 if(data[i].size()!=data[0].size())
00070 {
00071 EXCEPTION("Data vector sizes are not all equal");
00072 }
00073 }
00074
00075 OutputFileHandler output_file_handler(directory, cleanDirectory);
00076 out_stream p_file = output_file_handler.OpenOutputFile(fileName);
00077
00078 for(unsigned j=0; j<data[0].size(); j++)
00079 {
00080 for(unsigned i=0; i<data.size(); i++)
00081 {
00082 {
00083 (*p_file) << data[i][j] << "\t";
00084 }
00085 }
00086 (*p_file) << "\n";
00087 }
00088
00089 p_file->close();
00090 }
00091
00092
00093
00104 SimpleDataWriter(std::string directory, std::string fileName, std::vector<double> t, std::vector<double> x, bool cleanDirectory=true)
00105 {
00106 std::vector<std::vector<double> > data;
00107 data.push_back(t);
00108 data.push_back(x);
00109 SimpleDataWriter(directory, fileName, data, cleanDirectory);
00110 }
00111
00120 SimpleDataWriter(std::string directory, std::string fileName, std::vector<double> data, bool cleanDirectory=true)
00121 {
00122 std::vector<std::vector<double> > data_;
00123 data_.push_back(data);
00124 SimpleDataWriter(directory, fileName, data_, cleanDirectory);
00125 }
00126
00127 };
00128 #endif