1 pièce(s) jointe(s)
Calcul de matrice de distance - nombre bizarre
bonjour;
j'ai un fichier "jeu de donnée IRIS" que je veux importer et le transformer en une matrice de distance en calculant la matrice de distance euclidienne,
en utilisant qu'un fichier c sans utiliser un projet , le code s’exécuté, mais en créant un nouveau projet et coller le contenu de ce fichier dans le main du nouveau projet, l’exécution affiche des nombres bizard
voici mon code complet:
Code:
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| #include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *st=fopen("ir.csv","r");
double f[150][4];
int i; int j; int s;
double dis[150][4] = {0};
for(i=0;i<150;i++)
for(j=0;j<4;j++)
fscanf(st,"%lf;",&f[i][j]);
fclose(st);
for(i=0;i<150;i++, puts(""))
for(j=0;j<4;j++)
printf("%g ",f[i][j]);
/*********************calcule de la distance **************************************/
int k;
for (i = 0; i < 149; i++) {
for (j = 0; j < 149; j++) {
int temp = 0;
for (k = 0; k < 149; k++) {
temp += (int)sqrt(pow(f[i][k] - f[j][k], 2));
}
dis[i][j] = temp;
}
}
for(i=0; i<149; i++) {
for(j=0;j<149;j++) {
printf("%f ", dis[i][j]);
if(j==2){
printf("\n");
}
}
}
system("pause");
return 0;
} |
l'affichage:
Pièce jointe 543082