From 80165db6d0064dad930713b9903ad1da77b2ca48 Mon Sep 17 00:00:00 2001 From: Hannes Signer Date: Thu, 9 Jan 2025 21:00:01 +0100 Subject: [PATCH] change dimensions in vector_to_numpy_array --- .../SurrogateModels/AI_functions.cpp | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/Chemistry/SurrogateModels/AI_functions.cpp b/src/Chemistry/SurrogateModels/AI_functions.cpp index d7479ca22..40ea3801b 100644 --- a/src/Chemistry/SurrogateModels/AI_functions.cpp +++ b/src/Chemistry/SurrogateModels/AI_functions.cpp @@ -91,21 +91,24 @@ int Python_Keras_load_model(std::string model, std::string model_reactive, * @param field 2D-Matrix with the content of a Field object * @return Numpy representation of the input vector */ -PyObject *vector_to_numpy_array(const std::vector> &field) { - npy_intp dims[2] = {static_cast(field[0].size()), - static_cast(field.size())}; +PyObject* vector_to_numpy_array(const std::vector>& field) { + npy_intp dims[2] = {static_cast(field.size()), // Zeilenanzahl + static_cast(field[0].size())}; // Spaltenanzahl - PyObject *np_array = PyArray_SimpleNew(2, dims, NPY_FLOAT64); - double *data = static_cast(PyArray_DATA((PyArrayObject *)np_array)); - // write field data to numpy array - for (size_t i = 0; i < field.size(); ++i) { - for (size_t j = 0; j < field[i].size(); ++j) { - data[j * field.size() + i] = field[i][j]; + PyObject* np_array = PyArray_SimpleNew(2, dims, NPY_FLOAT64); + double* data = static_cast(PyArray_DATA((PyArrayObject*)np_array)); + + // Schreibe die Daten in das Numpy-Array (korrekte Reihenfolge) + for (size_t i = 0; i < field.size(); ++i) { + for (size_t j = 0; j < field[i].size(); ++j) { + data[i * field[0].size() + j] = field[i][j]; // Korrekte Indizes + } } - } - return np_array; + + return np_array; } + /** * @brief Converts a Pyton matrix object to a std::vector vector * @param py_matrix Pyobject that must be a 2D matrix