Bonjour à tous;
je desire calculer la valeur mediane d'un vecteur (ou d'un tableau). Alors j'ai écrit le code suivant:Ce code me permet de calculer la valeur mediane d'un tableau. Mon problème est que je manipule des données et j'ai besoin de supprimer certaines valeurs comme ce qui suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 void CalculMediane(float *tab, int nb_ech, float *mediane, float *max, float *min) { *mediane=0.0; *max=0.0; *min=0.0; int i,per=1; float tmp; while (per == 1) { per = 0; for (i=0; i<nb_ech; i++) { if (tab[i] > tab[i+1]) { tmp = tab[i]; tab[i] = tab[i+1]; tab[i+1] = tmp; per = 1; } } } *min = tab[0]; *max = tab[nb_ech-1]; *mediane = (tab[nb_ech/2 -1] + tab[nb_ech/2])/2; //Attention : cas d'un tableau contenant n = 2*k echantillons; }Je voudrais calculer la valeur mediane de mon nouveau vecteur comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 vector<double> tabs0; for (int j=0;j<257;j++) { if(lignebase[j]!=0) { tabs0.push_back(lignebase[j]); } }
A la compilation, j'obtiens une erreur "no matching function for call to CalculMediane(......)";
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 float mediane, M, m; CalculMediane(tabs0,tabs0.size(),&mediane,&M,&m);
Merci pour votre aide;
Partager