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 :

Utilisation de 'xlsread' de matlab


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Utilisation de 'xlsread' de matlab
    Je voudrais utiliser la fonction 'xlsread' de matlab, mais apparemment il faut pour cela démarrer Excel comme un COM server de Matlab.
    Comment doit on faire?

    Merci d'avance pour vos réponses

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Tout ceci se fait automatiquement dans XLSREAD, il suffit juste de passer le nom du fichier xls à la fonction.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    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
    Je préciserais même que dans xlsread, tu peux à la place du nom, lui donner le lieu où Matlab va chercher ton fichier excel.

    Et non, excel n'a pas besoin d'être ouvert.
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    En fait, voici le message d'erreur quand j'utilise 'xlsread' :

    Error XLSREAD: reading EXCEL-file (BIFF-Format) not implemented yet.
    You need to convert file into a Tab-delimited text file first.
    C'est dans the MathWorks que j'ai lu :

    The full functionality of xlsread depends on the ability to start Excel as a COM server from MATLAB. If your system does not have this capability, the xlsread syntax that passes the 'basic' keyword is recommended.
    Je pensais que le pb venait de là.

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Quelle est ta version de MATLAB et sous quel système d'exploitation travailles-tu ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    J'ai la version 5.2.0 de matlab et je travaille sous windows 2000.

  7. #7
    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
    Peux tu mettre en pièce jointe ton fichier excel ?
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Citation Envoyé par virginie999 Voir le message
    J'ai la version 5.2.0 de matlab et je travaille sous windows 2000.
    Et j'ai oublié de te demander la version d'Excel ou du fichier xls

    As-tu essayer d'ouvrir des fichiers xls enregistrer sous différentes versions d'Excel ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    J'ai Excel 2000 version 9.0.
    Je teste mon programme avec des petits fichiers .xls genre 3*3.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    A la base, j'ai un fichier .txt.
    D'habitude, j'utilise la fonction hdrload.m pr extraire mes données ms là je ne sais pas pourquoi (peut être parce c'est un fichier .txt issu d'un programme en C++), j'ai le message d'erreur suivant :
    Index exceeds matrix dimensions
    (alors que la matrice est petite)


    C'est pourquoi, j'ai voulu utiliser xlsread.m mais sans succes (message d'erreur dans le message précédent) même si je fais le test avec un fichier.xls de petite taille créé moi-même. Cela doit donc être dû à ma version de matlab ou de excel.

    En dernier recours, j'ai essayé dlmread.m mais cette fonction ne fonctionne pas, j'ai des messages d'erreurs du style :
    In an assignment A(matrix,matrix) = B, the number of columns in B
    and the number of elements in the A column index matrix must be the same.
    ou encore
    Subscripted assignment dimension mismatch.
    suivant le fichier que je testais.

    Peut-être ai je une mauvaise version de dlmread alors ou je peux en trouver une correcte?
    Sinon, peut être qu'il y a un autre moyen d'extraire mes données de mon fichier.txt

    Merci!

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Voici le fichier.txt que je dois traiter
    traj-pnoire.txt

  12. #12
    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
    Salut,

    As tu utiliser les fonction "fopen","fread"... Pour lire ton fichier ".txt" ?

    J'ai testé en faisant un copier/coller du contenu de ton fichier .txt dans un .xls puis j'ai utilisé cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [a,b]=xlsread('traj-pnoire')
    Et je n'ai pas de problème...

    Peux tu nous montrer la partie de ton programme où tu viens lire dans excel...
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  13. #13
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Est-ce normale qu'il manque des valeurs sur la dernière ligne du fichier ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    En utilisant cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [a,b]=xlsread('traj-pnoire.xls')
    J'ai le message d'erreur suivant :
    Error XLSREAD: reading EXCEL-file (BIFF-Format) not implemented yet.
    You need to convert file into a Tab-delimited text file first.
    D'ailleurs, moi je dois spécifier l'extension du fichier (.xls), sinon j'ai le message suivant :

    Error XLSREAD: file traj_t not found
    Si t'as pas de pb, ça vient peut-être de ma version de matlab (5.2.0).
    Avec une version plus récente, ya peut-être aucun pb.

    Sinon, c'est normal qu'il manque des valeurs sur la dernière ligne, le fichier est comme ça.

  15. #15
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Je pense sincèrement que ce qui coince ici, c'est ta version de MATLAB.

    Il faut utiliser les fonctions de bas niveau FOPEN/FSCANF/FCLOSE pour lire le fichier text.

    Plusieurs questions :
    • les champs de chaque colonne ont-ils une taille fixe (entier sur trois/quatre caractères max) ?
    • que faire des données manquantes de la dernière ligne ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Oui moi aussi en ce qui concerne 'xlsread' et dlmread'; mais ce que je ne comprends pas c'est pourquoi avec ce fichier lorque j'utilise 'hdrload' je ne peux extraire que la première ligne. A partir de la deuxième ligne, j'ai ce message d'erreur :
    Index exceeds matrix dimensions.
    Alors que ça marche très bien avec d'autres fichiers.

    Les champs de chaque colonne ont une taille qui varie entre 1 et 3 caractères.

    Pour les données manquantes, ce n'est pas un pb avec hdrload, avec d'autres fonctions par contre je sais pas.

  17. #17
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Pour HDRLOAD, tu parles de cette fonction : http://www.mathworks.com/support/tec...1400/1402.html ?

    Je l'utilise sans problème avec ton fichier sous MATLAB 5.1 :

    » [h,X]=hdrload('traj-pnoire.txt');
    » whos
    Name Size Bytes Class

    X 5737x1 45896 double array
    h 1x222 444 char array

    Grand total is 5959 elements using 46340 bytes
    Ensuite, il faut s'occuper des valeurs manquantes...
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  18. #18
    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
    Une mini remarque pour virginie999

    Quand tu dis qu'il faut préciser l'extension ".xls", l'erreur de matlab te dis qu'il ne trouve pas le fichier.

    L'exemple de lecture du fichier porte le nom de "traj-pnoire" et sur cette erreur de matlab, il parle du fichier "traj-t" ... Est-ce une mini faute de ta part ? Car sinon le problème est peut être là.

    Désolé de douter mais les fautes d'écriture sont tellement présentes...

    tchao
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Il faut bien que je précise l'extension, c'est une erreur je voulais ecrire 'traj-pnoire' dans le message; c'est surement dû à ma version de matlab qui est un peu vieille.

    Sinon, avec hdrload j'ai un pb pour extraire les données à partir de la deuxième ligne quand j'ecris par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [header,donnees]=hdrload('traj-pnoire.txt);
    donnees(1,1)
    donnees(2,1)
    Pour donnees(1,1), j'ai la bonne valeur du fichier (cad 0) alors que dès que je veux une valeur de la deuxième ligne par exemple donnees (1, 2) j'ai ce message d'erreur :

    Index exceeds matrix dimensions.
    Sinon, j'ai bien la même fonction de hdrload

  20. #20
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Donc l'erreur ne vient pas de la lecture... mais de l'utilisation que tu fais de la variable qui contient les données

    Si tu regardes la taille de la variable X, tu verras :
    >> whos X
    Name Size Bytes Class Attributes

    X 5737x1 45896 double
    C'est donc un vecteur colonne (plusieurs lignes mais une seule colonne).

    Donc l'indexage X(1,2) est faux. Il faut faire X(2,1).

    Je te conseille de lire ce tutoriel : Introduction à la gestion des matrices, en particulier la partie consacrée à l'indexage.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

Discussions similaires

  1. utilisation de VTK avec Matlab
    Par roubas dans le forum MATLAB
    Réponses: 1
    Dernier message: 17/11/2008, 11h53
  2. Utilisation de lsqlin dans Matlab
    Par lino72 dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/02/2008, 16h54
  3. Utiliser une fonction de MATLAB dans un code C++
    Par Bella la vita dans le forum MATLAB
    Réponses: 6
    Dernier message: 15/01/2008, 15h18
  4. Réponses: 2
    Dernier message: 19/06/2007, 23h30
  5. [hamming] Comment utiliser cette fonction avec Matlab 6.5
    Par vivematlab dans le forum Signal
    Réponses: 2
    Dernier message: 02/05/2007, 16h52

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