Rechercher : dans
Par :

[Matlab] Extraire données de plusieurs .dat

Dernière réponse le 26 mai 2009 à 14:17:50 Canth, le 26 mai 2009 à 11:26:11 
 Signaler ce message aux modérateurs

Bonjour,

Je suis totalement novice sous Matlab.

Je souhaite extraire les données de plusieurs fichiers .dat dont le nom est incrémenté. Par exemple : file0000.dat puis file0001.dat ..... file2250.dat.

Ces fichiers contiennent 2 colonnes de valeurs séparées par des espaces et une 100aine de valeurs par colonne... Je souhaiterai par la suite faire de la statistique comme la moyenne (par exemple) de toutes les valeurs de la ligne 1 colonne1 de mes 2250 fichiers .dat.

Je ne sais pas trop par quel bout attaquer ca... j'ai cherché mais systematiquement je trouve des choses pour les données d'un seul fichier.

Merci d'avance

Canth

Configuration: Linux
Firefox 3.0.8

Meilleures réponses pour « [Matlab] Extraire données de plusieurs .dat » dans :
Il est possible de récupérer le code source PHP d'un site VoirMythe Un utilisateur peut récupérer le code source PHP d'un site web comme il peut récupérer le code HTML. Réalité FAUX Explications Les fichiers PHP (ASP, JSP, etc.) sont des fichiers interprétés côté serveur, ce qui signifie que le serveur web...
Concaténer les vecteurs ou les matrices sous Matlab VoirL'opération de concaténation des variables de Matlab consiste à regrouper ces variables dans une seule (vecteur ou matrice). Exemple : |2 3 4| X= |1 2 5| |0 2 7| Avec : |9 6 8| Y= |5 6 2| |3 2 1| Donne...
Installer Wordpress VoirIntroduction Configuration requise Installation 1 : Téléchargement et Extraction 2 : Copie des fichiers sur le serveur 3 : Base de données 4 : Exécuter le Script d'Installation Introduction WordPress est un système de gestion de...
Télécharger Some PDF Image Extract VoirLes documents PDF peuvent comporter du texte, des graphes, des tableaux mais aussi des images. Étant donné qu'il n'est pas possible d'en modifier le contenu, il en est de même pour l'extraction d'une image du contenu du document. Some PDF Image...
Fichier DAT VoirFormat DAT Un fichier DAT Un fichier .dat est un fichier de données (.DAT signifie data). En général, il s'agit d'un fichier binaire, créé par un programme et utilisable uniquement par ce programme, ce qui signifie qu'il n'est pas censé être ouvert...
WAV VoirPrésentation du format WAV Le format WAV (contraction de « WAVEform audio format ») est un standard de stockage de données audio numérique défini par Microsoft et IBM. Il s'agit probablement du format de stockage audio le plus répandu, étant...
Introduction à XML VoirPrésentation de XML XML (entendez eXtensible Markup Language et traduisez Langage à balises étendu, ou Langage à balises extensible) est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles balises. Il s'agit effectivement...

1

Fee Fay, le 26 mai 2009 à 12:40:54

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 :

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 ! Tous les animaux criaient bien haut
Qu’il était le crapaud le plus beau, quand il jouait du banj­o

Répondre à Fee Fay

2

Canth, le 26 mai 2009 à 13:52:47

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

Répondre à Canth

3

 Fee Fay, le 26 mai 2009 à 14:17:50

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. Tous les animaux criaient bien haut
Qu’il était le crapaud le plus beau, quand il jouait du banj­o

Répondre à Fee Fay