A voir également:
- [Matlab] plotter un fichier .dat
- Ouvrir un fichier .dat - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir un fichier .bin - Guide
6 réponses
mamiemando
Messages postés
33595
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 mars 2025
7 834
21 janv. 2010 à 01:30
21 janv. 2010 à 01:30
Ça me paraît plus raisonnable d'utiliser gnuplot.
http://www.gnuplot.info/
Et sinon en matlab :
https://forums.commentcamarche.net/forum/affich-12614564-matlab-extraire-donnees-de-plusieurs-dat
Bonne chance
http://www.gnuplot.info/
Et sinon en matlab :
https://forums.commentcamarche.net/forum/affich-12614564-matlab-extraire-donnees-de-plusieurs-dat
Bonne chance
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
22 janv. 2010 à 12:32
22 janv. 2010 à 12:32
Il faut mettre des guillemets.
load 'machin.dat'
Mais es tu sur de la commandes ?
En matlab (octave) je ferai un load, mais en gnuplot :
load 'machin.dat'
Mais es tu sur de la commandes ?
En matlab (octave) je ferai un load, mais en gnuplot :
plot 'fichier.dat' u (($1*$2)):2 w l
Slut,
sans vouloir te contredire voila ce qu'il me donne apres avoir essaye avec les guillemets
can't read data file "kraft142.dat"
util.c: No such file or directory
le problem est qu'il ne reconnait pas du tout le fichier que veux plotter on dirait.
bien a toi
sans vouloir te contredire voila ce qu'il me donne apres avoir essaye avec les guillemets
can't read data file "kraft142.dat"
util.c: No such file or directory
le problem est qu'il ne reconnait pas du tout le fichier que veux plotter on dirait.
bien a toi
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
22 janv. 2010 à 15:49
22 janv. 2010 à 15:49
au moins il trouve ton fichier.
Il est peut être mal formaté, mais c'est une autre problème.
Il faut mettre des * en début de ligne sur les en tête de fichier.
Il est peut être mal formaté, mais c'est une autre problème.
Il faut mettre des * en début de ligne sur les en tête de fichier.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mamiemando
Messages postés
33595
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 mars 2025
7 834
22 janv. 2010 à 16:41
22 janv. 2010 à 16:41
Euh finalement tu fais du gnuplot ou du matlab ? Parce que si c'est du gnuplot je pense que vous faites tout les deux fausse route.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
22 janv. 2010 à 17:25
22 janv. 2010 à 17:25
On va gagner du temps, à quoi il ressemble ton fichier exactement ?
Moi, j'utilise les deux de manière assez indifférente.
Coment s'appel ton fichier aussi ? je ne comprends pas ta commande "load 141 nom_fichier.dat" le 141 surtout.
Moi, j'utilise les deux de manière assez indifférente.
Coment s'appel ton fichier aussi ? je ne comprends pas ta commande "load 141 nom_fichier.dat" le 141 surtout.
22 janv. 2010 à 11:59
merci deja pour ta reponse. J'ai lu effectivement le gnuplot et il est vraiment beaucoup plus pour mon probleme.
Seulement j'ai un autre probleme qui se pose: et bien j'ai suivi la commande qui demande de loaden le fichier a plotter, mais seulement le gnuplot ne cesse de ,me dire ''expecting filename''; j'ai procede comme suit:(je dois preciser ici que je travaille dans Linux)
gnuplot> load Name
22 janv. 2010 à 12:24
Comme je disais mon fichier est compose de 13 colonnes et une multitudes de lignes; le problem qui se pose est que avant de plotter je dois d'abord multiplier une(la premiere) ligne avec toutes les colonnes.
ma procedure est la suivante:
gnuplot> load 141 nom_fichier.dat (car c'est ainsi que mes fichiers se font appeller)
mais la, il me dit "expecting filename" en pointant la fleche sur le 141: je ne comprend pas trop ce qu'il attend d'autre; en plus j'ai verifier avec "pwd" je suis bien dans le fichierdirecteur ou se trouvent mes fichiers a plotter(car j'en ai pres d'une centaine)
Merci pour votre aide
22 janv. 2010 à 16:53
j'ai lu le procede avec matlab et j'essaye la depuis de le faire mais je ne comprend pas les 2 lignes:
numfile=num2str(10000+p);
numfile=numfile(2:end);
car dans mon cas j'ai 13 colonnes d'un nombre infini de ligne avec environ 5000 fichiers(le nom est aussi incremente), un peu dans le genre:
Distance 2 Valeurs : 256,00[µsec], Time-misses gesamt : 00:00:08[sec]
GR1-X GR1-Y GR1-Z GR2-X GR2-Y GR2-Z AR-X AR-Y AR-Z BR-X BR-Y BR-Z C-Achse
199,716 199,907 5014,473 499,925 499,697 5018,536 2001,964 499,696 9974,746 2021,627 999,863 20018,36 10009,98
N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V
3 6 0 0 -11 6 9 -10 6 -10 0 2 -5
3 9 2 3 -15 2 8 -15 7 -11 -3 -2 -5
3 7 1 1 -15 7 8 -13 8 -5 1 3 -5
3 7 0 3 -11 5 9 -11 9 -10 2 0 -6
2 5 3 2 -11 5 7 -11 8 -10 2 0 -5
5 7 0 0 -11 5 7 -11 7 -11 1 0 -5
6 7 1 2 -14 5 9 -11 7 -10 0 2 -6
2 3 2 0 -11 5 7 -11 8 -11 -2 1 -5
et les chiffres en italliques(au total 13) doivent tous etre multiplies colonne par colonne c'est a dire
par exemple
199,716*(3; 3; 3; 3; 2; 5; 6; 2) et ainsi de suite jusqu'a la fin
Alors je me represente un peu la chose de la sorte:
C=cell(1:13,5000);
for p=1:5000
numfile=num2str(10000+p); que represente le 10000 ici pour toi?
numfile=numfile(2:end);
fid=fopen(['file' numfile '.dat'],'r');
C(:,:,p)=textscan(fid, '%f %f');
fclose(fid);
end
C=cell2mat(C);
seulement qu'en plus je dois faire le plot
quelqu'un serait-il assez gentil pour me dire si oui ou non je suis sur le chemin?
Merci
22 janv. 2010 à 18:01
@Char Snipeur: En fait mon fichier s'appelle 142 kraft.dat, 143 kraft.dat, ... , 200 kraft.dat et a la forme
Distance 2 Valeurs : 256,00[µsec], Time-misses gesamt : 00:00:08[sec]
GR1-X GR1-Y GR1-Z GR2-X GR2-Y GR2-Z AR-X AR-Y AR-Z BR-X BR-Y BR-Z C-Achse
199,716 199,907 5014,473 499,925 499,697 5018,536 2001,964 499,696 9974,746 2021,627 999,863 20018,36 10009,98
N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V
3 6 0 0 -11 6 9 -10 6 -10 0 2 -5
3 9 2 3 -15 2 8 -15 7 -11 -3 -2 -5
3 7 1 1 -15 7 8 -13 8 -5 1 3 -5
3 7 0 3 -11 5 9 -11 9 -10 2 0 -6
2 5 3 2 -11 5 7 -11 8 -10 2 0 -5
5 7 0 0 -11 5 7 -11 7 -11 1 0 -5
6 7 1 2 -14 5 9 -11 7 -10 0 2 -6
2 3 2 0 -11 5 7 -11 8 -11 -2 1 -5
et les chiffres en italliques(au total 13) doivent tous etre multiplies colonne par colonne c'est a dire
par exemple
199,716*(3; 3; 3; 3; 2; 5; 6; 2) et ainsi de suite jusqu'a la fin
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
j'ai lu le procede avec matlab et j'essaye aussi la depuis de le faire mais je ne comprend pas les 2 lignes:
numfile=num2str(10000+p);
numfile=numfile(2:end);
car dans mon cas j'ai 13 colonnes d'un nombre infini de ligne avec environ 5000 fichiers(le nom est aussi incremente), un peu dans le genre:
Alors je me represente un peu la chose de la sorte:
C=cell(1:13,5000);
for p=1:5000
numfile=num2str(10000+p); que represente le 10000 ici pour toi?
numfile=numfile(2:end);
fid=fopen(['file' numfile '.dat'],'r');
C(:,:,p)=textscan(fid, '%f %f');
fclose(fid);
end
C=cell2mat(C);
seulement qu'en plus je dois faire le plot
quelqu'un serait-il assez gentil pour me dire si oui ou non je suis sur le chemin?
Merci
22 janv. 2010 à 18:08
j'ai lu le procede avec matlab et j'essaye la depuis de le faire mais je ne comprend pas les 2 lignes:
numfile=num2str(10000+p);
numfile=numfile(2:end);
car dans mon cas j'ai 13 colonnes d'un nombre infini de ligne avec environ 5000 fichiers(le nom est aussi incremente), un peu dans le genre:
Distance 2 Valeurs : 256,00[µsec], Time-misses gesamt : 00:00:08[sec]
GR1-X GR1-Y GR1-Z GR2-X GR2-Y GR2-Z AR-X AR-Y AR-Z BR-X BR-Y BR-Z C-Achse
199,716 199,907 5014,473 499,925 499,697 5018,536 2001,964 499,696 9974,746 2021,627 999,863 20018,36 10009,98
N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V N/10V
3 6 0 0 -11 6 9 -10 6 -10 0 2 -5
3 9 2 3 -15 2 8 -15 7 -11 -3 -2 -5
3 7 1 1 -15 7 8 -13 8 -5 1 3 -5
3 7 0 3 -11 5 9 -11 9 -10 2 0 -6
2 5 3 2 -11 5 7 -11 8 -10 2 0 -5
5 7 0 0 -11 5 7 -11 7 -11 1 0 -5
6 7 1 2 -14 5 9 -11 7 -10 0 2 -6
2 3 2 0 -11 5 7 -11 8 -11 -2 1 -5
et les chiffres en italliques(au total 13) doivent tous etre multiplies colonne par colonne c'est a dire
par exemple
199,716*(3; 3; 3; 3; 2; 5; 6; 2) et ainsi de suite jusqu'a la fin
Alors je me represente un peu la chose de la sorte:
C=cell(1:13,5000);
for p=1:5000
numfile=num2str(10000+p); que represente le 10000 ici pour toi?
numfile=numfile(2:end);
fid=fopen(['file' numfile '.dat'],'r');
C(:,:,p)=textscan(fid, '%f %f');
fclose(fid);
end
C=cell2mat(C);
seulement qu'en plus je dois faire le plot
quelqu'un serait-il assez gentil pour me dire si oui ou non je suis sur le chemin?
Merci