Scilab

Discutez d'informatique ici !
Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 14:00

par fatal_error » 10 Mai 2010, 17:32

salut,

Je pense avoir capito, mais chu pas sur.
Ton but, c'est à partir d'un fichier, chercher automatiquement l'index qui correspond au pic, vu que la zone a etudier commencer à partir de ce pic.

C'est bien ca?
la vie est une fête :)



Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 14:00

par fatal_error » 10 Mai 2010, 18:57

de la réajuster à la main car les mesures dans chaque fichier ne sont les mêmes


Tu dois réajuster la zone pour chaque fichier, de manière automatique si j'ai bien compris.

Les deux questions que tu dois te poser sont donc :
comment caractériser le début d'une zone?
comment caractériser la fin d'une zone?

Par exemple, je dis le début de la zone, c'est l'index du pic.
Toi tu me dis que non, c'est juste après. Ce juste après, il est très vague, il faut être plus précis. C'est une retombée? un certain laps de temps apres le pic? ... etc
de même pour la fin de la zone.
la vie est une fête :)

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 14:00

par fatal_error » 10 Mai 2010, 21:12

ben jai bien compris que le debut de la zone c'est pas la meme pour chacun des fichiers(jeu de données en fait).

Ce que je veux te faire dire (et que JE ne peux PAS savoir), c'est comment on trouve le début de la zone. Ca tu sais le faire à la main, mais moi non.

Par exemple, (c'est pas à moi de mettre des graphes/images, donc j'en mets pas), si t'as une courbe du style une gaussienne, et que tu me dis, le début de la zone commence quand ca retombe, ben je sais pas ou prendre le début. Quand c'est fait à la main tu fais quoi : tu mets le début à vue de nez? tu prends un point ou la pente est inférieure à une certaine constante? tu prends le point tel que son ordonnée est moitié moindre que le pic?
Moi je sais pas comment tu le détermine ce point...
la vie est une fête :)

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 14:00

par fatal_error » 11 Mai 2010, 17:30

J'ai eu quelques informations de plus, pour réaliser ce bout de programme je dois utiliser la fonction max


Alors, avant de regarder l'aide, on peut intuiter, que la fonction max va te donner le maximum (ca semble assez logique).

Toutefois, avant de parler de la fonction max, j'insiste une dernière fois, il faut définir comment tu trouves le début de ta zone.

Bon, concernant la fonction max, tu peux regarder ici, ca decrit ce qu'elle fait.
Elle prend une matrice en entrée et retourne le valeur du coeff max de la matrice ainsi que ses coordonnées dans la matrice.
la vie est une fête :)

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 14:00

par fatal_error » 12 Mai 2010, 10:52

ok, donc tu as pas spécialement de critères si ce n'est la pente qui faut a peu pres 0.

Donc cque jte propose, c'est ca :
(I) trouver le maximum
(II) parcourir les points suivants en calculant le coefficient directeur pour chaque point
(III) marquer le debut de la zone, quand le coeff directeur est inférieur à A

A, c'est une constante petite, par exemple 0.05
Des détails pour (II)
il est clair que on ne peut pas se contenter de calculer le coeff directeur entre deux points consécutifs, parce que par exemple il suffit que yait un point qui merde(abbérrant) et on obtient un coeff abérant.

exemple :
(1,2);(2,2);(3,0)
en appliquant (II), on peut croire que la zone commence a (1,2) vu que le coeff directeur entre les points (1,2) et (2,2) est nul, or c'est juste (2,2) qui chie.

On a deux choix qui paraissent pas mal :
- faire une moyenne des coefficients directeurs sur plusieurs points consécutifs
- considérer qu'il faut le début de la zone si on a 4(par exemple) coeff directeurs consécutifs de valeur inférieure à A
la vie est une fête :)

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 14:00

par fatal_error » 12 Mai 2010, 15:46

pt1 jéjé, t'oublies a chaque fois qu'on sait pas tout ce que tu as...

premiere chose :
temps, c'est quoi?(tableau? matrice? de quoi?)
pic, c'est quoi?

pourquoi i = 500?
commente tes boucles : exemple :
Code: Tout sélectionner
//pour tous les points apres le pic
for i=pic:length(temps)
...
end


A ca contient quoi?
A(:,2)==pic??

en tout cas le coeff a lair mal calculé.
i et j semblent etre des indices, et toi tu calcules le coeff directeur sur des indices ce qui est evidemment faux.
rappele, un coeff directeur entre deux points,(x_1;y_1) et (x_2;y_2) c'est


ensuite, le truc qui me gene le plus, c'est pourquoi on a a(i,j) j'ai l'impression du coup, que tu n'a pas un jeu de données 2D (ex : temps associe pollution ) mais un jeu de données 3D : (temps et distance associe pollution).
En effet, a(i,j)=z laisse supposer que t'as pour chaque point de la matrice a une ordonnée (un peu comme si on trace z = x^2+y^2)

bref des détails sur tes structures de données sont les bienvenus
la vie est une fête :)

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 14:00

par fatal_error » 24 Mai 2010, 21:59

re,

je pense que t'as assez bien résumé la chose :
lister les fichiers.
Prendre le premier fichier, appliquer ton marquage, fermer le fichier.
Prendre le fichier suivant, etc...

Là il n'y a plus tellement de probleme d'algorithme.
Ca relève plus de la syntaxe de scilab : comment lister les fichiers présents dans un dossier, comment charger en mémoire le contenu d'un fichier, etc...

Je n'utilise pas scilab, donc je peux pas t'aider plus que ca :hum:
la vie est une fête :)

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 9 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite