Debutant en webmastering
Messages postés401Date d'inscriptionlundi 6 juin 2011StatutMembreDernière intervention27 janvier 2021
-
Modifié le 16 mai 2017 à 08:50
Debutant en webmastering
Messages postés401Date d'inscriptionlundi 6 juin 2011StatutMembreDernière intervention27 janvier 2021
-
17 mai 2017 à 08:50
Bonjour, bonsoir,
je ne sais pas si la logique est bonne mais j'essaie, à partir d'un tableau de données (pour le moment simple mais après, à partir d'un .csv), de créer un nouvel objet ayant comme variables différentes données utiles pour des calculs mathématiques à venir.
Pour cela, je passe par un constructeur qui initialise mes variables (et effectue les calculs de base comme somme, moyenne etc) puis par un second constructeur qui est censé enregistrer ces variables ; mais quand j'essaie de les récupérer à l'aide d'un get, j'obtiens un simple 0 ce qui ne correspond en rien au résultat attendu.
Voici les différentes parties de code concernées (avec pour contrainte de travailler à partir d'une librairie statique "kNNclus")
//Main //Test Data unsigned int *noise = new unsigned int[N]; noise[0] = 36; noise[1] = 40; noise[2] = 36; //End Test Data
kNNclus::CategoryData *processedNoise = new kNNclus::CategoryData(noise, N); std::cout << "Sum of processedNoise = " << processedNoise->getSum() << std::endl;
class CategoryData { protected: std::string label; float sum, mean, min, max, variance, standardDeviation, expectation; CategoryData(std::string la, float su, float me, float mi, float ma, float va, float sd, float ex); CategoryData(float *columnData, unsigned int columnDataSize); CategoryData(unsigned int *columnData, unsigned int columnDataSize); float getSum();
//Constructors Used CategoryData::CategoryData(unsigned int *columnData, unsigned int columnDataSize) { float sum = kNNclus::Utils::sumUnsignedInt(columnData, columnDataSize); float mean = kNNclus::Utils::meanUnsignedInt(sum, columnDataSize); float min = *std::min_element(columnData, columnData + columnDataSize); float max = *std::max_element(columnData, columnData + columnDataSize); float variance = kNNclus::Utils::varianceUnsignedInt(columnData, mean, columnDataSize); float standardDeviation = kNNclus::Utils::standardDeviation(variance); float expectation = kNNclus::Utils::expectationUnsignedInt(columnData, columnDataSize); std::string label = "testUnsignedInt"; CategoryData(label, sum, mean, min, max, variance, standardDeviation, expectation); }
J'ai fait différents "affichages" de variables à différents moments
noise[0]= 36 noise[1]= 40 noise[2]= 36 somme dans constructeur CategoryData::CategoryData(unsigned int *columnData, unsigned int columnDataSize) = 112 valeur avant set : 112 valeur après set : 112 somme dans constructeur CategoryData::CategoryData(std::string la, float su, float me, float mi, float ma, float va, float sd, float ex) = 112
mais processedNoise->getSum() donne toujours 0 comme résultat