Ouvrir des fichiers dont le nom est incrémenté avec scilab

Ouvrir des fichiers dont le nom est incrémenté avec scilab - Divers - Programmation

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! :)

Reply

Marsh Posté le 04-04-2014 à 17:34:28   

Reply

Marsh Posté le 05-04-2014 à 12:00:33    

westohn a écrit :

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! :)


 
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 :
  1. for p = 1:1000
  2.     %http://www.mathworks.fr/fr/help/matlab/ref/sprintf.html
  3.     filename = sprintf('B%05d.dat', p)
  4.     % ouverture du fichier
  5.     % load(filename)
  6. end

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed