[Matlab] plotter un fichier .dat
toutfaire
-
toutfaire -
toutfaire -
Bonjour,
J'ai le problem suivant; j'ai un fichier avec extension .dat qui contient des mesures. Seulement ces mesures sont nombreuses et je voudrais donc plotter les avec matlab.
Qulequ'un aurait-il une idee de comment je peux proceder?
Merci pour toute aide.
J'ai le problem suivant; j'ai un fichier avec extension .dat qui contient des mesures. Seulement ces mesures sont nombreuses et je voudrais donc plotter les avec matlab.
Qulequ'un aurait-il une idee de comment je peux proceder?
Merci pour toute aide.
A voir également:
- [Matlab] plotter un fichier .dat
- Fichier .dat - Guide
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
6 réponses
Ç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
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
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
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.
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
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
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
@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
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