Matlab-traitement de données importées
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Matlab-traitement de données importées



  1. #1
    invite48249293

    Matlab-traitement de données importées


    ------

    Bonjour à tous,

    Je suis un tout nouvel utilisateur de Matlab et je rencontre quelques difficultés pour l'utiliser. J'ai notamment un soucis pour traiter des données importées d'un fichier texte. Voilà les détails:

    1) j'ai un fichier texte qui est en fait l'enregistrement de mesures géotechniques lors d'un forage: en gros, c'est un tableau où j'ai autant de colonnes que de paramètres mesurés (environ 20), et autant de lignes que de mesures effectuées sur toute la profondeur du forage (environ 20000 lignes). L'une des colonnes est justement la profondeur.

    2)certaines lignes (qui diffèrent selon les colonnes) comportent des valeurs non utilisables (mesures non effectuées).

    Objectifs: récupérer ce fichier et tracer les caractéristiques de certains paramètres en fonction de la profondeur grace à un programme Matlab (le fichier est trop gros pour Excel)...

    Ce que j'ai déjà fait: importer le fichier sous Matlab en lui demandant d'enregistrer chaque colonne comme étant un vecteur.

    Problème: je ne connais pas la syntaxe pour appeler ces vecteurs dans mon programme (en ne sélectionnant que les plages de valeurs qui m'intéressent, puisque certaines cases sont inutilisables), ni comment les tracer.

    Voilà, le problème ne doit pas être très compliqué à résoudre mais je ne sais pas comment l'écrire (pas trouver dans l'aide)! Si une âme charitable pouvait m'aider ...

    A bientôt,

    G.

    P.S: j'ai un mac, si cela a une influence...

    -----

  2. #2
    lou_ibmix_xi

    Re : Matlab-traitement de données importées

    Salut
    si j'ai bien compris tu as ouvert ton fichier avec la fonction fopen, ensuite il faut que tu lises les valeurs avec un 'fscanf' comme suit:
    Code:
    val = fscanf (fid, "%d");
    où fid est le descripteur de fichier renvoyé par fopen, "%d" est fait si tes données sont de type entier, remplace par "%f" si ce sont des flottants.
    Ensuite, tes données sont dans le vecteur "val". tu peux récupérer la 3ème colonne par exemple avec "val(3:20:end)" si tu as bien 20 colonnes. Une autre méthode est de transformer ton vecteur en une matrice 20 colonne avec
    Code:
     x = reshape (val, nlines, 20)
    . Ensuite pour trouver les indices valide tu utilises la fonction "find". Si par exemple les valeurs invalides sont -1,
    Code:
     n = find (x(:,1) ~= -1)
    te retourneras dans "n" les indices valides, alors
    Code:
    y = x(n,:)
    devrait être la matrice ne contenant uniquement les measures correctes...
    Si tu as des problèmes poste quelques lignes de ton fichier, avec des valeurs invalides, pour que nous jettions un oeil.

    PS: dlmread est certainement mieux adapté que fscanf, "help dlmread" t'en diras plus.
    Dernière modification par lou_ibmix_xi ; 21/02/2010 à 19h07. Motif: balise de code

  3. #3
    invite48249293

    Re : Matlab-traitement de données importées

    Bonjour et merci de ta réponse

    En fait, j'ai importé mon fichier dans Matlab en faisant "file=>import data". J'importe mon fichier texte, qu'il transforme en un tableau (choix des séparateurs=tabulations) et il me demande ensuite:
    'select variables to impor using checkboxes': Ier choix:create variables matching preview ou 2eme choix: create vectors from each column using column names.

    Jusque là j'ai toujours pris le deuxième choix. Je me retrouve ainsi avec une liste de vecteurs dans mon workspace, chacun correspondant à une colonne du tableau.

    Dans mon idée, je définissais deux variables:
    Vec1= 'nom de la colonne 1'
    Vec 2= 'nom de la colonne 2'
    Plot (Vec1,Vec2)

    Mais ca ne marche pas...

    Peut etre y a t il une commande pour bien lui faire comprendre de trouver 'nom de la colonne i' directement dans le work space pour qu'il comprenne de quels vecteurs je lui parle?

    Tu pensais que j'avais utilisé fopen... Est ce une commande qui produit automatiquement l'importation de fichier que j'ai faite manuellement? J'ai eesayé de l'utilisé tel que: fid=fopen ('nom du fichier', 'r'); val = fscanf (fid, '%f'); mais il n'aime pas trop... (error using fscanf. Invalide file identifier, use fopen to generate a valide file identifier)

    Bon je vais essayer de chercher un peu en attendant ton aide

    G.

  4. #4
    lou_ibmix_xi

    Re : Matlab-traitement de données importées

    OK...
    En fait le problème vient surtout du fait que tu n'utilises pas MATLAB comme moi: pour moi MATLAB est avant tout une ligne de commande, un peu comme la ligne de commande DOS ou UNIX. Donc lorsque tu ouvres MATLAB tu te retrouves dans un répertoire (je ne saurais pas te dire lequel sous windows). Or, la fonction "fopen" nécessite le chemin complet de ton fichier par rapport au répertoire courant, je suppose donc qu'il n'arrive pas à ouvrir le fichier, tu peux t'en assurer en affichant le résultats qui doit être un nombre strictement positif en cas de succès. Donc deux solutions: tu change de répertoire courant grâce à la commande "cd" (comme en DOS ou en shell), ou tu lui donnes le chemin complet du fichier à ouvrir...
    De plus concernant l'import de donnée selon ta méthode, je ne peux pas t'aider car j'utilise OCTAVE, un clône gratuit de MATLAB, compatible à 99.999% avec ce dernier, mais qui ne travaille qu'exclusivement en ligne de commande.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. [Matlab] Chargement de données
    Par invite44fc6d5e dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 22/06/2009, 11h27
  2. Traitement de données cryptées
    Par invited37a86e7 dans le forum Mathématiques du supérieur
    Réponses: 12
    Dernier message: 22/10/2008, 17h27
  3. traitement de données
    Par ABN84 dans le forum Technologies
    Réponses: 13
    Dernier message: 08/06/2008, 20h06
  4. Importation données Matlab
    Par invitee4b17465 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 14/06/2007, 13h38
  5. Matlab : importation de données
    Par invite2fbe1c70 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 15/04/2006, 14h18
Découvrez nos comparatifs produits sur l'informatique et les technologies.