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
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
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)
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
En fait, voici le message d'erreur quand j'utilise 'xlsread' :
C'est dans the MathWorks que j'ai lu :Error XLSREAD: reading EXCEL-file (BIFF-Format) not implemented yet.
You need to convert file into a Tab-delimited text file first.
Je pensais que le pb venait de là.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.
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)
J'ai la version 5.2.0 de matlab et je travaille sous windows 2000.
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
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)
J'ai Excel 2000 version 9.0.
Je teste mon programme avec des petits fichiers .xls genre 3*3.
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 :
(alors que la matrice est petite)Index exceeds matrix dimensions
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 :
ou encoreIn 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.
suivant le fichier que je testais.Subscripted assignment dimension mismatch.
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!
Voici le fichier.txt que je dois traiter
traj-pnoire.txt
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 :
Et je n'ai pas de problème...
Code : Sélectionner tout - Visualiser dans une fenêtre à part [a,b]=xlsread('traj-pnoire')
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
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)
En utilisant cette commande :
J'ai le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [a,b]=xlsread('traj-pnoire.xls')
D'ailleurs, moi je dois spécifier l'extension du fichier (.xls), sinon j'ai le message suivant :Error XLSREAD: reading EXCEL-file (BIFF-Format) not implemented yet.
You need to convert file into a Tab-delimited text file first.
Si t'as pas de pb, ça vient peut-être de ma version de matlab (5.2.0).Error XLSREAD: file traj_t not found
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.
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)
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 :
Alors que ça marche très bien avec d'autres fichiers.Index exceeds matrix dimensions.
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.
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 :
Ensuite, il faut s'occuper des valeurs manquantes...» [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
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)
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
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 :
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 :
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)
Sinon, j'ai bien la même fonction de hdrloadIndex exceeds matrix dimensions.
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 :
C'est donc un vecteur colonne (plusieurs lignes mais une seule colonne).>> whos X
Name Size Bytes Class Attributes
X 5737x1 45896 double
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)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager