IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

erreur de lecture d'un fichier .mat sous matlab


Sujet :

MATLAB

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Points : 44
    Points
    44
    Par défaut erreur de lecture d'un fichier .mat sous matlab
    Salut, je débute en Matlab et j’ai un problème: Je veux voir le contenu d'un fichier .mat créé par un autre utilisateur, donc j’ai chargé le fichier par la fonction load et j’ai utilisé la fonction whos pour savoir les nom et les tailles des variables que l'utilisateur a exporté.
    Et enfin pour voir le contenu de la matrice X(par exemple) j’ai utilisé : m=load('fichier.mat','X');

    Voila mon code final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    m=load('viola_24x24.mat');
    whos -file viola_24x24.mat
    m=load('viola_24x24.mat','X');
    X
    Et voici ce qui m’affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Name      Size                           Bytes  Class
     
      X        24x24x12788                   7365888  uint8 array
      y         1x12788                       102304  double array
     
    Grand total is 7378676 elements using 7468192 bytes
     
    ??? Undefined function or variable 'X'.
    Donc mon problématique c’est cette erreur que je n’est pas compris « ??? Undefined function or variable 'X'. » Ou bien le corrigé sachant que mon but c’est de consulter les données contenus dans ce ficher viola_24x24.mat.
    ya-il quelqu'un qui peux m'aider??

    (J'ai voulu bien vous attachez le fichier 'viola_24x24.mat' mais il est trop grand 6,3 mo que je ne peux pas vous le transférer)

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    Pour le fichier, tu peux en prendre que les 10 premières lignes.

    Pour le 'X', je crois que c'est plutôt un petit 'x'. Ensuite tu as utilisé la variable 'm'...

    Dans ton code remplace ton 'X' par 'm' et tins nous informé.

    Christophe

  3. #3
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut
    Quand tu utilises l'argument de sortie de LOAD il te crée une structure dont les champs sont les variables de ton fichiers.
    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    m=load('viola_24x24.mat');
    var=fieldnames(m) %les noms des variables
    for k=1:length(var)
        var{1} %nom variable 1
        m.(var{1}) %valeur variable 1
    end

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Points : 44
    Points
    44
    Par défaut
    Merci christophe, mais même avec un petit x elle ne marche pas et la même erreur « ??? Undefined function or variable 'x' ».

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Points : 44
    Points
    44
    Par défaut
    Merci Caro-Line ton code marche bien et il me donne ce que je veux.


    Mais j’ai une autre astuce, les valeurs de la 2ieme variable c.-à-d. 'y’ c’est une matrice de taille 24*24 qui représente une image. Comment je peux visualiser cette image ??

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut
    Euh...donc tu n'as rien compris en fait

    Ou alors je ne comprends pas ta question.
    Tu sais récupérer la variable ?

    Dans ce cas c'est peut-être ceci que tu cherches :
    mais ça n'a plus rien à voir avec le sujet de départ.

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Points : 44
    Points
    44
    Par défaut
    Oui Caro-Line, je pense que vous m’avez pas bien compris. Le problème de départ de consulter les données contenus dans le ficher viola_24x24.mat c’est résolu. Maintenant j’ai un autre problème : var{1} c-a-d x c’est une matrice d’une image de taille 24*24 donc mon problème maintenant après la récupération des valeurs de cette matrice avec ceci m.(var{1}) je veux l’afficher pour voir cette image. Comment puisse moi procéder avec ce code ??

  8. #8
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut
    ben tu as les valeurs je ne vois vraiment pas le problème...
    IMREAD te permet d'afficher l'image...

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    J'ai même fait mieux, tu peux utiliser la fonction display_database incluse

  10. #10
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut
    Afin que ce message ne soit pas rendu complètement incompréhensible,
    je suppose que tu fais une référence croisée à une autre discussion du posteur :
    Unable to load mex file
    et que donc cette fonction se trouve dans le package de ta Toolbox.

Discussions similaires

  1. Erreur de lecture dans un fichier
    Par jagboys dans le forum MFC
    Réponses: 3
    Dernier message: 20/01/2008, 20h08
  2. Lecture d'un fichier .mat
    Par yoann_deygas dans le forum MATLAB
    Réponses: 5
    Dernier message: 10/05/2007, 14h06
  3. Lecture/Ecriture de fichiers MAT via .NET
    Par mimic50 dans le forum MATLAB
    Réponses: 3
    Dernier message: 29/03/2007, 11h48
  4. lecture d'un fichier son sous dev-cpp
    Par yashiro dans le forum Dev-C++
    Réponses: 4
    Dernier message: 02/05/2006, 17h26
  5. Erreur de lecture dans un fichier
    Par acieroid dans le forum C++
    Réponses: 9
    Dernier message: 30/04/2006, 20h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo