Strategy to read OutputData from simple ASCII file with the layout as in numpy.savetxt.
Definition at line 53 of file OutputDataReadStrategy.h.
◆ readOutputData()
OutputData< double > * OutputDataReadNumpyTXTStrategy::readOutputData |
( |
std::istream & |
input_stream | ) |
|
|
virtual |
Implements IOutputDataReadStrategy.
Definition at line 130 of file OutputDataReadStrategy.cpp.
133 std::vector<std::vector<double>> data;
136 while (std::getline(input_stream, line)) {
143 data.push_back(dataInRow);
150 size_t nrows = data.size();
153 ncols = data[0].size();
156 throw std::runtime_error(
"OutputDataReadNumpyTXTStrategy::readOutputData() -> Error. "
159 for (
size_t row = 0; row < nrows; row++) {
160 if (data[row].size() != ncols)
161 throw std::runtime_error(
"OutputDataReadNumpyTXTStrategy::readOutputData() -> Error. "
162 "Number of elements is different from row to row.");
167 }
else if (ncols < 2) {
168 const size_t size = data.size();
169 std::vector<double> vector1d(size);
170 for (
size_t i = 0; i < size; ++i) {
171 vector1d[i] = data[i][0];
CreateDataImpl::ReturnType< T > createData(const T &vec)
Creates OutputData array from input vector.
bool isDoubleStartChar(char c)
std::string trim(const std::string &str, const std::string &whitespace=" \t")
References ArrayUtils::createData(), anonymous_namespace{OutputDataReadStrategy.cpp}::isDoubleStartChar(), DataFormatUtils::parse_doubles(), and anonymous_namespace{OutputDataReadStrategy.cpp}::trim().
The documentation for this class was generated from the following files: