犰狳,保存列名

时间:2014-05-22 22:12:58

标签: c++ armadillo

使用Armadillo库(HERE),可以轻松地将矩阵和其他对象保存到文件中。 THIS是手册中有关保存功能的部分的链接。它通常只是将数据转储到文件中。

未明确涵盖的内容是,如果想要保存文件所包含的对象,也是标题行,例如要转储到文件的数据的列名。

实现这一目标的最佳途径是什么?

干杯。

1 个答案:

答案 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());
    }
}