15 #include <boost/lexical_cast.hpp>
16 #include <boost/numeric/ublas/io.hpp>
18 using namespace boost;
31 this->data = data.data;
41 if(new_data.
size1() <= 0 || new_data.
size2() <= 0)
45 int orig_size2 = this->data.size2();
47 int new_size1 = new_data.
size1();
48 int new_size2 = orig_size2 + new_data.
size2();
52 this->data.resize(new_size1, new_size2);
56 MatrixException ex(
"Error resizing eeg data matrix in order to append data.");
60 for(
int row = 0; row < new_data.
size1(); row++)
62 for(
int col = 0; col< new_data.
size2(); col++)
64 this->data(row, col+orig_size2) = new_data.data(row,col);
73 data.resize(0,0,
false);
80 std::ios_base::openmode mode)
const
83 ofs.open(filename, mode);
86 cerr <<
"Error opening file: " << filename <<
" for writing.\n";
100 for(
unsigned int row=0; row<data.size1();row++)
102 for(
unsigned int col=0; col<data.size2(); col++)
104 ofs << data(row,col) <<
" ";
111 cerr <<
"Error writing EEGData to file.\n";
146 stringstream ssline(line);
153 double v = lexical_cast<
double>(value);
154 if(data.size2() <= unsigned(col))
156 data.resize(data.size1(),data.size2()*2);
158 if(data.size1() <= unsigned(row))
160 data.resize(data.size1()*2,data.size2());
174 data.resize(row-1,max_col);
191 int new_size2 = int(data.size2() * (double(amount)/100.0));
192 data1->data.resize(data.size1(),new_size2);
193 data2->data.resize(data.size1(),new_size2);
200 0,data1->data.size1(),
206 0,data2->data.size1(),
210 new_size2,data.size2()-1);
217 0,data2->data.size1(),
223 0,data1->data.size1(),
227 new_size2,data.size2()-1);
233 int start_middle, end_middle;
234 start_middle = int(.25 * data.size2());
235 end_middle = int(.75 * data.size2());
237 0,data2->data.size1(),
243 0,data1->data.size1(),
247 start_middle,end_middle-1);
249 0,data2->data.size1(),
253 end_middle,data.size2()-1);
294 os <<
"EEGData: " << ublas::matrix<double>(d).size1()
295 <<
" features X " << ublas::matrix<double>(d).size2() <<
" samples";