[Matlab] Extraire données de plusieurs .dat
Résolu/Fermé
Canth
Messages postés
2
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
26 mai 2009
-
26 mai 2009 à 11:26
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 - 26 mai 2009 à 14:17
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 - 26 mai 2009 à 14:17
A voir également:
- Matlab extraire données fichier texte
- Fichier rar - Guide
- Extraire une video youtube - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
3 réponses
Fee Fay
Messages postés
635
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 mai 2009
377
26 mai 2009 à 12:40
26 mai 2009 à 12:40
Bonjour mon ami !
Une solution possible est d'utiliser la fonction fopen puis la fonction textscan pour chacun de tes fichiers, tu obtiendras un tableau de cellules.
Ensuite, pour pouvoir manipuler toutes ces données assez facilement, le mieux peut-être, sera que tu convertisses ton tableau de cellules en matrice à l'aide de la fonction cell2mat. Ici un tableau à trois entrées me paraît même plus approprié, les deux premières entrées pour les données de chaque fichier (des matrices en quelque sorte), la dernière entrée pour changer de fichier (des pages si on peut dire).
Consulte les aides pour savoir comment manipuler tout cela :
help fopen ou doc fopen
help textscan ou doc textscan
help cell2mat ou doc cell2mat
D'après les quelques informations que tu nous a données, cela donnerait quelque chose de ce genre :
mean (moyenne)
std (écart type)
var (variance)
cov (covariance)
De nouveau, consulte l'aide Matlab pour savoir comment utiliser au mieux ces fonctions ;-)
Pour finir, j'ajouterai que si ton institut/laboratoire/école/université possède aussi la Statistics Toolbox, tu auras accès à plus d'outils pour traiter tes données si tu as besoin de faire des choses un peu plus complexes. Prends ton temps et jette un petit coup d'œil à tout cela ;-)
Je te souhaite une bien bonne journée !
Une solution possible est d'utiliser la fonction fopen puis la fonction textscan pour chacun de tes fichiers, tu obtiendras un tableau de cellules.
Ensuite, pour pouvoir manipuler toutes ces données assez facilement, le mieux peut-être, sera que tu convertisses ton tableau de cellules en matrice à l'aide de la fonction cell2mat. Ici un tableau à trois entrées me paraît même plus approprié, les deux premières entrées pour les données de chaque fichier (des matrices en quelque sorte), la dernière entrée pour changer de fichier (des pages si on peut dire).
Consulte les aides pour savoir comment manipuler tout cela :
help fopen ou doc fopen
help textscan ou doc textscan
help cell2mat ou doc cell2mat
D'après les quelques informations que tu nous a données, cela donnerait quelque chose de ce genre :
C=cell(1,2,2250); for p=1:2250 numfile=num2str(10000+p); numfile=numfile(2:end); fid=fopen(['file' numfile '.dat'],'r'); C(:,:,p)=textscan(fid, '%f %f'); fclose(fid); end C=cell2mat(C);Ensuite pour faire par exemple la moyenne dont tu parlais dans ton message, il te suffit d'exécuter cette commande :
mean1x1=mean(C(1,1,:));Il y a plusieurs fonctions pour les statistiques sous Matlab, en voici une liste non exhaustive :
mean (moyenne)
std (écart type)
var (variance)
cov (covariance)
De nouveau, consulte l'aide Matlab pour savoir comment utiliser au mieux ces fonctions ;-)
Pour finir, j'ajouterai que si ton institut/laboratoire/école/université possède aussi la Statistics Toolbox, tu auras accès à plus d'outils pour traiter tes données si tu as besoin de faire des choses un peu plus complexes. Prends ton temps et jette un petit coup d'œil à tout cela ;-)
Je te souhaite une bien bonne journée !
Fee Fay
Messages postés
635
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 mai 2009
377
26 mai 2009 à 14:17
26 mai 2009 à 14:17
Il n'y a pas de quoi ;-)
Soit le bienvenu et à la prochaine !
Oups... j'ai oublié un point important, la conversion du tableau de cellules en tableau de réels à trois entrées (C=cell2mat(C);) ne fonctionnera que si tous tes fichiers ont le même nombre de lignes ;-)
Sinon il faudra penser à compléter les matrices plus petites du tableau de cellules avec des zéros par exemple, le plus simple étant je pense de le faire dans la boucle de lecture de chaque fichier plutôt qu'à la fin.
Soit le bienvenu et à la prochaine !
Oups... j'ai oublié un point important, la conversion du tableau de cellules en tableau de réels à trois entrées (C=cell2mat(C);) ne fonctionnera que si tous tes fichiers ont le même nombre de lignes ;-)
Sinon il faudra penser à compléter les matrices plus petites du tableau de cellules avec des zéros par exemple, le plus simple étant je pense de le faire dans la boucle de lecture de chaque fichier plutôt qu'à la fin.
Canth
Messages postés
2
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
26 mai 2009
1
26 mai 2009 à 13:52
26 mai 2009 à 13:52
Merci bcp pour cette réponse bien détaillée !
Je vais potasser les rubriques d'aide que tu as mentionnées et me dépatouiller avec tout ca.
En tout cas merci encore pour ta rapidité et pour ta réponse, c'est vraiment super.
Bonne journée :)
Je vais potasser les rubriques d'aide que tu as mentionnées et me dépatouiller avec tout ca.
En tout cas merci encore pour ta rapidité et pour ta réponse, c'est vraiment super.
Bonne journée :)