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

Octave Discussion :

formater ses résultats pour du XML


Sujet :

Octave

  1. #1
    Nouveau membre du Club
    formater ses résultats pour du XML
    Bonjour, j'ai une fonction qui ressort des résultats numériques, ainsi que des vecteurs. J'aimerai formaté mes résultats pour qu'ils soient lisiblent en XML. Est ce qu'il y a un moyen simple pour formater cela ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Tu peux jeter un œil ici : Gestion des fichiers XML avec la XML toolbox

    Sinon pourquoi le XML ? C'est un format verbeux pas forcément très adapté à l'échange de données numériques.
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et 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
    Nouveau membre du Club
    Je veux faire ça car j'aimerai printer mes résultats, vecteurs etc... Via une interface graphique qui est déjà existante et qui prend en entrée un fichier.XML ou Jason

  4. #4
    Rédacteur/Modérateur

    La toolbox mentionnée dans mon précédent message est relativement simple à utiliser.

    Sinon MATLAB possède aussi ses propres fonctions xlmread/xlmwrite

    Et pour aller encore plus loin il est possible d'utiliser une version Java de Xerces fournie avec MATLAB
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et 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)

  5. #5
    Nouveau membre du Club
    Super j'ai vu des exemples qui marchent et font exactement ce que je veux !! Par contre je n'arrive pas à installer la toolbox...

    Je suis sous octave et non Matlab, mais la toolbox est existante sous le même nom ! Cependant j'ai des erreurs de makefile ou j'ai des dépendances manquantes... J'ai cherché via un apt-get install octavexml d'installé cela aussi mais le paquet est introuvable... Quelqu'un aurait-il un lien avec toutes les dépendances ?

  6. #6
    Rédacteur/Modérateur

    J'ai réussi à compiler la XMLToolbox 0.4.9 pour Octave sur Xubuntu 15.04

    Les paquets à installer :
    • libxerces-c-dev
    • liboctave-dev
    • libhdf5-dev


    Puis j'ai modifié la première ligne du fichier make :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    LOCAL_CPPFLAGS = -O2 -fPIC -I/usr/include/octave-3.8.2 -I/usr/include/octave-3.8.2/octave -I/usr/include/hdf5/serial/ -mieee-fp -O2


    Quelques warning ‘Octave_map’ is deprecated sont apparus.

    Finir par
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    make install


    Les tests passent avec octave-cli (ligne de commande) :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    octave:1> runtests
    xml_help:
     
    Octave XMLtoolbox 0.4.9
     
     - xml_load - Read XML file and load it into the Octave workspace.
     - xml_save - Convert a workspace variable/structure to XML saving it to a file.
     - xml_parse - Convert XML string to Octave variable/structure.
     - xml_format - Convert Octave variable/structure to XML string representation.
     
    xml toolbox functional tests
    ans =  1
    testing xml_format
    testing xml_save
    testing xml_load
    testing xml_parse
    finished


    Par contre, Octave crash si j'essaie les tests avec l'interface (octave)
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et 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)

  7. #7
    Nouveau membre du Club
    Super !! Merci beaucoup pour tes explications j'ai effectué les changements et installé les librairies. Cela à l'air de marcher je vais donc tester tout cela demain sur octave ! Je te tiens au courant !

  8. #8
    Nouveau membre du Club
    J'ai installé toutes les librairies et changé la première ligne du makefile cependant j'ai l'erreur suivante quand je tente l'installation:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    octave:16> pkg install octave-xmltoolbox-0.4.9.tar.gz
    package is missing file: COPYING
    error: called from 'verify_directory' in file /usr/share/octave/3.8.2/m/pkg/private/verify_directory.m near line 30, column 7
    error: called from:
    error:   /usr/share/octave/3.8.2/m/pkg/private/install.m at line 153, column 5
    error:   /usr/share/octave/3.8.2/m/pkg/pkg.m at line 394, column 9


    Mais je ne sais pas à quoi correspond le fichier COPYING...

  9. #9
    Rédacteur/Modérateur

    N'utilises pas pkg install.

    Télécharge simplement le tar.gz, décompresse-le et exécute le make.
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et 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)

  10. #10
    Nouveau membre du Club
    J'ai fait ça, je fais le runtests par la suite, ça a l'air de bien se passer hormis quelques warning. Cependant le package n'est pas installé pour autant ! Lorsque je fais
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    pkg list
    je ne le vois pas présent dans la liste, ce qui fait que mes fonctions XML ne sont toujours pas reconnues sous octave

  11. #11
    Rédacteur/Modérateur

    As-tu essayé en copiant les fichiers .oct que tu viens de compiler dans le dossier courant de ton projet ?
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et 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)

  12. #12
    Nouveau membre du Club
    Yes je l'ai fait ! ça marche tout de suite beaucoup mieux haha ! Je n'ai plus dérreur ni de warning lorsque j'éxecute mon script cependant à la fin je fait:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    snr.result= SNR;
    snr.position= tStart;
    snr.position=tStop;
    xml_save('snrCalc.xml', snr);
    end


    Et il ne me crée pas le fichier snrCalc.xml dans mon espace courant... Je ne peux donc pas vérifier si les résultats sont bien enregistrer...

  13. #13
    Nouveau membre du Club
    EDIT: ça marche en fait, le fichier xml ne s'affiche en fait que dans l'explorateur de fichiers depuis la GUI octave et non dans le dossier courant sous l'explorateur linux...

    Merci beaucoup Dut !