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 :

charger un tableau Excel


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Points : 32
    Points
    32
    Par défaut charger un tableau Excel
    Bonjour,
    Je me replonge sur matlab 2015 après plusieurs moi et j'ai quelques difficulties déjà.

    Voila, j'ai sous excel plusieurs onglets et dans chaque onglet un tableau.
    Là sous matlab je voudrais ecrire un script me permettant de créer des variables et d'importer mes tableau d'excel vers matlab. Après cette importation je donnerai un nom de variable à chacun de mes tableau.

    Je voudrais importer ses tableau sous forme de matrice ou de vecteur et non sous forme de structure comme le permet la function uiimport.

    Ya t'il un moyen de le faire dans mon script?

    Le bouton import le fait très bien lorsqu'on importe directement des variables dans le workspace mais comment le faire dans un script?

    Voila ou j'en suis pour l'instant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function[MPmin, MPmax, MPmoy]= MinMax()
     
    %%Importer les tableurs de dommage Excel
     
     
     
        MPG1= zeros(6,171);
        MPG2= zeros(6,171);
        MPC1= zeros(6,171);
        MPC2= zeros(6,171);
        MPD1= zeros(6,171);
        MPD2= zeros(6,171);
     
       MPG1=(% ici je voudrais une function me permettant d'aller chercher mon tableau manuellement)...;
    Existe t'il une function me permettant d'aller chercher mon tableau excel manuellement? Je precise que je ne souhaite pas specifier le chemin d'accès car celui ci peut etre variable. Il faudrait donc que matlab me permette a chaque fois de choisir mon chemin d'accès.

    Merci d'avance

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    pour chercher un fichier regarde la fonction uigetfile
    puis pour l'ouvrir xlsread

    si tu veux en plus permettre à l'utilisateur de choisir une feuille du fichier, tu peux obtenir la liste des feuilles via xlsinfo et la proposer à l'utilisateur via la fonction menu par exemple

    Fabien

  3. #3
    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 882
    Points
    52 882
    Par défaut
    Et avant d'aller plus loin dans la conception de ton code, tu devrais envisager de définir les tableaux comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MPG = zeros(6,171,2);
    MPC = zeros(6,171,2);
    MPD = zeros(6,171,2);
    ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MPG{1} = zeros(6,171);
    MPG{2} = zeros(6,171);
    MPC{1} = zeros(6,171);
    MPC{2} = zeros(6,171);
    MPD{1} = zeros(6,171);
    MPD{2} = zeros(6,171);
    Voir la FAQ : Comment créer dynamiquement des variables nommées A1, A2, A3… AN ?
    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)

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Points : 32
    Points
    32
    Par défaut Combinaison dans un table
    Merci,

    En fait ma question était bête j'ais introduit directement les tableau en entrée de ma function, c'est plus rapide et plus simple.
    J'ai avancé du coup dans ma function. j'ai calculer la somme ligne par ligne des elements de chaque tableau, ce qui m'a donné 6 tableaux de 5 lignes et une colonne, avec dans chaque cellule la valeur de la somme des elements des lignes des tableaux precedents.

    J'ai regroupé ces 6 tableaux en 1 seul de 6 colonnes et 5 lignes.

    maintenant je souhaite combiner les cellules de ce nouveau tableau, colonne par colonne dans le but d'obtenir la combinaison au résultat maxi et mini.

    par exemple
    si jai

    1 2
    2 8

    Je veux pouvoir calculer

    1+2
    1+8
    2+2
    2+8

    et avoir le max et le min de ces sommes.

    j'ai testé la function perms mais elle ne fonctionne pas avec un objet "table"

    quelqu'un a t'il une idée?

    Merci

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour

    Deux boucles peuvent faire l'affaire.
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Points : 32
    Points
    32
    Par défaut
    Avec des boucles???

    J'ai des combinaisons entre 30 valeurs différentes. Avec 2 boucles je pense ça sera chaud.

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    C'est sûr que question optimisation en rapidité d'exécution, ça sera pas le top. Mais si cela t'importe peu, c'est très facile de concevoir deux boucles qui vont parcourir deux colonnes d'une matrice.
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Points : 32
    Points
    32
    Par défaut
    Ouaip ^^

    Ben finalement t'avais raison avec 4 ou 5 boucles embriquées jai pu trouver toutes mes combinaison sur les 6 lignes. Nikel.

    maintenant j'ai mes 15000 combinaisons et je souhaiterais nommer chacune d'elle. Je vois pas du tout comment faire.

    Je viens de penser à un moyen simple. étant donner que j'ai nommé chacun des elements que j'ai combiner par un chiffre allant de 1 à 5, faudrait que je puisse inscrire ces chiffres pour nommer mes combinaison.

    Je m'explique. Par exemple, dans une cellule de mon tableau j'ai nommé mon premier element "1". Dans une autre cellule, j'ai nommer mon 2e element "2". donc quand je combine c'est deux elements je voudrait récupérer le 1 et le 2 des elements precedents dans leur cellule et les accolé dans la mm case de façon a avoir "12" dans cette case pour nommer mon nouvel element qui est la combinaison de 1 et 2.

    Est ce possible sur matlab?

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Oui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fprintf('%d%d\n',1,2)
    12
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Points : 32
    Points
    32
    Par défaut
    D'accord avec toi mais mon blem c'est que je ne peux pas ecrire directement les valeur 1 et 2. Faut que j'aille les chercher dans mes cellules.

    Alors j'ai tenté ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Name=fprintf('%d%d%d\n',MPG1(i,1),MPG2(j,1),MPC1(k,1))
    Sans résultat probant.

    Une idée?

  11. #11
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    Citation Envoyé par accessbeginner Voir le message
    Sans résultat probant.
    c'est à dire ?
    si tu as un message d'erreur, merci de le recopier ici

    sinon pense à lire la faq ici et, je suis sur que tu y trouvera des réponses

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Points : 32
    Points
    32
    Par défaut
    Sans résultat probant car au lieu de m'afficher les valeur des cellules designees il m'affiche un chiffre que je ne sais d'ou il le sort XD.

    Feedback de mon boss là...Il veut pas que j'utilise de boucle pour les combinaison. Donc faut que je trouve une function me permettant de combiner directement. Si quelqu'un à une idée a 1 million d'euro je suis preneur.

    Oui je vais matter les faq

Discussions similaires

  1. Charger un tableau excel ou open office
    Par jmbonnaz dans le forum MATLAB
    Réponses: 7
    Dernier message: 14/06/2007, 10h26
  2. [VBA-E]créer un tableau Excel en vba
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/01/2006, 16h06
  3. Aide débutant instruction VBA tableau Excell
    Par damien33 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/09/2005, 10h31
  4. Charger les données Excel avec Forms 9i
    Par Process Linux dans le forum Forms
    Réponses: 8
    Dernier message: 29/03/2005, 14h20
  5. [VC++6]intégrer un tableau excel
    Par albireo29 dans le forum MFC
    Réponses: 2
    Dernier message: 16/09/2004, 11h44

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