66 std::vector<std::vector<double>> vecVec;
67 std::map<double, double> QvsR;
68 std::map<double, double> QvsDR;
69 std::map<double, double> QvsDQ;
72 while (std::getline(fin, line)) {
76 vecVec.push_back(rowVec);
83 size_t nrows = vecVec.size();
85 throw std::runtime_error(
"Import1dTextData: no numerical values found");
86 size_t ncols = vecVec[0].size();
88 throw std::runtime_error(
"Import1dTextData: Minimum 2 columns required");
91 for (
size_t row = 0; row < nrows; row++) {
92 if (vecVec[row].size() != ncols)
93 throw std::runtime_error(
"The number of columns varies among the rows");
94 double Q = vecVec[row][0];
99 QvsR[Q] = vecVec[row][1];
104 QvsR[Q] = vecVec[row][1];
105 QvsDR[Q] = vecVec[row][2];
109 QvsR[Q] = vecVec[row][1];
110 QvsDR[Q] = vecVec[row][2];
111 QvsDQ[Q] = vecVec[row][3];
116 std::vector<double> qVec;
117 std::vector<double> rVec;
118 for (
auto it = QvsR.begin(); it != QvsR.end(); ++it) {
121 qVec.push_back(it->first);
122 rVec.push_back(it->second);
void addAxis(const IAxis &new_axis)
void setRawDataVector(const std::vector< T > &data_vector)
Sets new values to raw data vector.
Axis containing arbitrary (non-equidistant) coordinate values.
std::string trim(const std::string &str, const std::string &whitespace=" \t")