2016年2月19日金曜日

EigenのデータをCSV形式で保存(c++)

EigenのMatrixXdのデータをCsv形式で保存したくなったので、作りました。

ソース;
--------------------------------- exportCsv.h ---------------------------------
#include <fstream>
#include <iostream>
#include <vector>
#include <Eigen/Dense>

using namespace std;
using namespace Eigen;

void exportData(string filename,vector<MatrixXd> data);

--------------------------------- exportCsv.cpp ---------------------------------
#include "exportCsv.h"

void  exportData(std::string filename,vector<MatrixXd> data)
{
ofstream ofs(filename);

vector<MatrixXd>::iterator it;
for(it = data.begin(); it != data.end(); it++ )
{
for (int i = 0; i < (*it).rows(); i++)
{
ofs << (*it)(i, 0);
if (i != (*it).rows()-1) {
ofs << ",";
}

}
ofs << endl;
}

ofs.close();

return;
}

使い方:
#include "exportCsv.h"

// for export data
std::vector<MatrixXd> data;

data.push_back(pushData);

exportData("data.csv", data);



参考:
http://futurismo.biz/archives/1782

0 件のコメント:

コメントを投稿