Aufgrund einer Störung des s3 Storage, könnten in nächster Zeit folgende GitLab Funktionen nicht zur Verfügung stehen: LFS, Container Registry, Job Artifacs, Uploads (Wiki, Bilder, Projekt-Exporte). Wir bitten um Verständnis. Es wird mit Hochdruck an der Behebung des Problems gearbeitet. Weitere Informationen zur Störung des Object Storage finden Sie hier: https://maintenance.itc.rwth-aachen.de/ticket/status/messages/59-object-storage-pilot

Commit 82f238c6 authored by Markus Mirz's avatar Markus Mirz
Browse files

csvreader: add csv2eigen function


Signed-off-by: Markus Mirz's avatarMarkus Mirz <mmirz@eonerc.rwth-aachen.de>
parent bbe9d067
......@@ -64,7 +64,8 @@ namespace CPS {
Real time_format_convert(const String& time);
/// Skip first row if it has no digits at beginning
void doSkipFirstRow(Bool value = true) { mSkipFirstRow = value; }
///
MatrixRow csv2Eigen(const std::string& path);
std::vector<PQData> readLoadProfileDP(std::experimental::filesystem::path file,
Real start_time = -1, Real time_step = 1, Real end_time = -1, Real scale_factor= 1,
......
......@@ -76,6 +76,8 @@ namespace CPS {
/// @brief Dense matrix for integers.
typedef Eigen::Matrix<Int, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor> MatrixInt;
///
typedef Eigen::Matrix<Real, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> MatrixRow;
///
typedef Eigen::PartialPivLU<Matrix> LUFactorized;
///
typedef Eigen::SparseLU<SparseMatrix> LUFactorizedSparse;
......
......@@ -6,12 +6,31 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*********************************************************************************/
#include <cps/CSVReader.h>
namespace fs = std::experimental::filesystem;
using namespace CPS;
MatrixRow CSVReader::csv2Eigen(const std::string& path) {
std::ifstream inputFile;
inputFile.open(path);
std::string line;
std::vector<double> values;
uint rows = 0;
while (std::getline(inputFile, line)) {
std::stringstream lineStream(line);
std::string cell;
while (std::getline(lineStream, cell, ',')) {
values.push_back(std::stod(cell));
}
++rows;
}
uint columns = values.size()/rows;
return Eigen::Map<const MatrixRow>(values.data(), rows, columns);
}
void CSVRow::readNextRow(std::istream& str) {
std::string line;
std::getline(str, line);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment