Ouvrir des fichiers dont le nom est incrémenté avec scilab - Divers - Programmation
Marsh Posté le 05-04-2014 à 12:00:33
westohn a écrit : Bonjour, |
En mettant "p" dans le nom, Scilab interprète p comme partie du nom et pas comme la variable p.
En Matlab, quelque chose comme ça fonctionne :
Code :
|
Marsh Posté le 04-04-2014 à 17:34:28
Bonjour,
Je suis totalement novice en programmation.
Je souhaite extraire les données de 1000 fichiers .dat dont le nom est incrémenté :
B00001.dat, B00002.dat, ..., B01000.dat
Ces fichiers contiennent 4 colonnes séparés par des espaces et 11403 lignes.
Les 3 premières lignes sont du textes et les 11400 lignes suivantes sont des points.
Les 2 premières colonnes représentent la position de chaque points (x et y)
Les 2 autres colonnes représentent les vitesses en chaque point (Vx et Vy).
Les 1000 fichiers correspondent chacun à une mesure des vitesses en chaque point à un instant donné allant de 0,001 seconde (B00001.dat) à 1,000 seconde (B01000.dat).
Je doit réaliser la moyenne des fichiers en chaque points.
J'ai fouiller un peu partout sur internet et j'ai réussis à ouvrir le premier fichier en faisant:
--> fichier=mopen('B00001.dat','r');
--> donnee=mgetl(fichier);
--> mclose(fichier);
--> donnee=donnee(4:11403,;
--> donnee=evstr(donnee);
J'aimerais maintenant pouvoir ouvrir tout les fichiers pour pouvoir réaliser une moyenne des 2 dernières colonnes de chaque fichier que je pourrais écrire sur un seul fichier.
J'ai pour cela renommé tout mes fichiers donnee (1), donnee (2), ..., donnee (1000) et j'ai écrit :
--> for p=1:1000,
--> fid=mopen('donnee (p).dat','r');
--> donnee=mgetl(fid);
--> mclose(fid);
--> donnee=donnee(4:11403,;
--> donnee=evstr(donnee);
Cependant, cela ne fonctionne pas du tout, le logiciel me met !-- error 999
"mopen : Impossible d'ouvrir le fichier donnee (p).dat
J'ai regardé un peu partout sur internet et essayer d'autres script, mais ne trouve pas de solution et commence à désespérer un peu ^^.
Comment pourrais je faire ?
Toute aide sera la bienvenue,
Merci d'avance!