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 :

[Linux] Export depuis MATLAB vers xls ou csv


Sujet :

MATLAB

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Par défaut [Linux] Export depuis MATLAB vers xls ou csv
    Bonjour,
    J'ai crée un script me permettant de réaliser un certain nombre de calculs et d'affichage de graphs.
    Cependant je n'ai rien trouvé qui m'éxplique d'une manière simple comment exporter telle ou telle variable à tel endroit d'un fichier xls ou csv en ajoutant eventuellement des graphs...

    Si quelqu'un pouvait guider cette brebie égarée que je suis...

    Merci !

    ps : j'ai éssayé la fonction fprintf mais j'ai l'impression qu'elle ne permet pas de sélectionner une variable mais uniquement des valeurs tapées manuellement...

  2. #2
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Par défaut
    Salut,
    Excel étant microsoft, son utilisation sous linux n'est pas native. Toutefois il existe un solution codée en Java
    D'autre part si tu souhaites écrire un fichier au format csv, tu peux utiliser csvwrite, qui marchera aussi bien sous windows et linux.

    PS : Dut a écrit un article sur l'utilisation d'excel à travers Matlab. Bien que ce ne soit pas compatible linux, tu trouveras des informations sur les interfaces Matlab-Excel et sur la programmation sous Excel (VBA).

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Par défaut
    Merci pour la réponse,
    Aurais-tu un exemple où la commande csvwrite est utilisée ?
    Celle-ci fonctionne aussi pour les graphs ?


  4. #4
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Par défaut
    L'exemple de la doc ne te suffit pas?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    m = [3 6 9 12 15; 5 10 15 20 25; ...
         7 14 21 28 35; 11 22 33 44 55];
    csvwrite('csvlist.dat',m)
    Pour les graphs je ne connais pas d'autre moyen que de sauvegarder les figures , par exemple avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print -dpng 'mongraph.png'
    Que tu insères ensuite à la main dans ton fichier excel (pas dans un csv!).

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Par défaut
    csvwrite à l'air de fonctionner correctement

    J'ai un grand nombre de données à exporter, pas moyen d'insérer le nom de chaque variable pour pouvoir s'y retrouver ?

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 885
    Par défaut
    dans la doc de xlswrite il est écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If your system does not have Excel for Windows, or if the COM server (part of the typical installation of Excel) is unavailable, then the xlswrite function:
     
    Writes array A to a text file in comma-separated value (CSV) format.
     
    Ignores the sheet and range arguments.
     
    Generates an error when the input array A is a cell array.
    xlswrite devrait donc marcher sous linux également, non ?

  7. #7
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Par défaut
    @le fab : oui xlswrite va marcher, mais seulement avec les fonctions élémentaires. On perd par exemple la mise en forme et les onglets.
    @hilibili : Tu peux écrire tu textes et des nombres dans un csv, (voir la page wikipedia). Où souhaites tu insérer le nom de variable?

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Par défaut
    Bonjour,
    Je suis vraiment désolé de vous demander des exemples à chaque fois, mais je débute tout juste et ce n'est pas forcement ce qu'il y a de plus intuitif...

    Imaginons un script, qui permettent de réaliser un certain nombre d'opérations en partant de fichier d'entrées tous formatés de la même manière. Je désire exporter dans un fichier de sortie certaines variables et un graph (type subplot).

    J'ai reussi à exporter uniquement les valeurs d'une variable, mais écrire du texte je ne comprend pas comment faire. Je ne comprend pas comment mettre en forme mon texte pour avoir le nom de la variable suivi de ses valeurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x= [[1 2 3];[4 5 6];[7 8 9]]
    Actuellement j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    1,2,3
    4,5,6
    7,8,9
    En ce qui concerne l'exportation du graph, je souhaite "automatiser" cette opération en appelant cette action dans mon script et non pas en l'exportant manuellement.

    Merci beaucoup pour votre aide

  9. #9
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Par défaut
    Il y a en fait une subtilité, la méthode csvwrite n'accepte pas l'écriture de texte et de nombres. Toutefois si tu édites le fichier avec fwrite (par exemple), tu peux ajouter du texte, et le format csv est toujours valide : tu pourras l'importer sous excel.
    Il y a dans la doc matlab un exemple qui t'explique comment écrire un fichier à partir de données alpha numériques (un cell array dans ce cas).
    Quel format souhaites tu avoir dans ton fichier de sortie? Quelque chose comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    x
    1,2,3
    4,5,6
    7,8,9
    y
    1,2,3
    4,5,6
    7,8,9
    Ou est ce que tu veux que chaque variable soit dans un fichier séparé?

    La ligne que je t'ai donné précédemment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print -dpng 'mongraph.png'
    permet de faire l'exportation d'image automatiquement à partir d'une figure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    figure;
    plot(1:10);
    title('Hello');
    grid on
    %etc etc
    print -dpng 'mongraph.png'

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Par défaut
    Citation Envoyé par FLB Voir le message
    Quel format souhaites tu avoir dans ton fichier de sortie?
    Quelque chose du genre :

    a=1,2,3
    4,5,6
    7,8,9

    b= 1.546

    c=.....

    Avec les graphs correspondants en dessous

  11. #11
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Par défaut
    Ok, et comment comptes tu l'utiliser ensuite? Avec quoi ouvriras tu ce fichier?
    ->J'imagine que tu voudrais avoir une feuille excel?
    Ce serait un joli tour de force sous linux. Je ne crois pas qu'aucune des toolbox actuelles ne fassent ca, mais je te conseille d'y jeter un coup d'oeil plus en profondeur (différentes solutions sont proposées ici), ou à poser des questions aux développeurs de ces toolbox.
    C'est surement possible sous windows, car c'est peu différent de ce qui se fait avec power point, et ça m'a l'air possible en Java - ce ne sera toutefois pas simple à mettre en place.
    Bonne recherche bibliographique
    Si tu trouves une solution, n'oublies pas de la poster

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Par défaut
    Citation Envoyé par FLB Voir le message
    Si tu trouves une solution, n'oublies pas de la poster
    PUBLISH !! c'est exactement ce qu'il me faut !

    Néanmoins, quelqu'un sait comment afficher les valeurs d'une matrice [15;1] dans un rapport XML généré avec publish ?

    Merci

  13. #13
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Par défaut
    Salut,
    je ne connaissais pas publish, ça m'a l'air bien pratique en effet.
    Pour afficher une matrice M, utilise disp :
    Il sera alors entre 2 balises <mcodeoutput> dans ton xml.

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 885
    Par défaut
    pubish met automatiquement dans un rapport (au format de ton choix) toutes tes sorties de ton script
    soit tes graphiques et tout ce qui s'écrit dans la matlab command windows
    donc il suffit d'écrire dans la MCW ta matrice :
    voir

Discussions similaires

  1. export lien hypertexte vers xls
    Par Stargate SG1 dans le forum VBA Access
    Réponses: 11
    Dernier message: 03/01/2017, 13h41
  2. [XL-2007] exporter depuis .xlsm vers .csv sans convertir "001" en 1
    Par EmmanuelleC dans le forum Excel
    Réponses: 4
    Dernier message: 12/04/2010, 09h13
  3. Export 4D First vers excel ou csv ou autre
    Par umatis dans le forum 4D
    Réponses: 3
    Dernier message: 02/07/2007, 18h03
  4. exporter une BD vers un format csv
    Par 4seb5 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 07/05/2007, 14h21
  5. [Macro]exporter une table vers un fichier.csv
    Par samca dans le forum IHM
    Réponses: 2
    Dernier message: 24/04/2007, 21h25

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