使用Armadillo库(HERE),可以轻松地将矩阵和其他对象保存到文件中。 THIS是手册中有关保存功能的部分的链接。它通常只是将数据转储到文件中。
未明确涵盖的内容是,如果想要保存文件所包含的对象,也是标题行,例如要转储到文件的数据的列名。
实现这一目标的最佳途径是什么?
干杯。
答案 0 :(得分:1)
不确定这是否是最好的方法,但这有效:
void writeToFile(std::stringstream& ss, const char* name){
string myString = ss.str();
ofstream myfile;
myfile.open(name);
myfile << myString;
myfile.close();
}
void saveMatrixToFile(const fmat& object, const vector<string>& header, const string fileNameSuffix){
string fullFileName = string("OUTPUT_").append(fileNameSuffix);
if(object.n_cols > 0){
printf("Saving : %s\n",fullFileName.c_str());
if(header.size() == object.n_cols){
std::stringstream ss;
std::copy(header.begin(), header.end(),std::ostream_iterator<std::string>(ss,"\t"));
ss << "\n";
object.save(ss,raw_ascii);
writeToFile(ss,fullFileName.c_str());
}else{
object.save(fullFileName,raw_ascii);
}
}else{
printf("Saving : %s, ABORTED\n",fullFileName.c_str());
}
}