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 :

Lecture de fichier avec architecture particulière


Sujet :

MATLAB

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Points : 52
    Points
    52
    Par défaut Lecture de fichier avec architecture particulière
    Bonjour,
    Je souhaite lire un fichier de résultats issu d'un logiciel de calcul seulement l'architecture est assez particulière:

    <list><x row="631" col="1" list="-94.847176|
    -93.62446|-92.40155|-91.17844|-89.955124|-88.731606|
    -87.50789|-86.283966|-85.05985|-83.83553|-82.61101|
    -81.38629|-80.16137|-78.93625|-77.71092|-76.4854|
    -75.259674|-74.03375|-72.80763|-71.58131|-70.35478|
    -69.12806|-67.90113|-66.67401|-65.446686|-64.21916|
    -62.991436|-61.76351|-60.53539|-59.307064|-58.078545|
    -56.84982|-55.6209|-54.391777|-53.16246|
    607.81995|609.0398|610.2598|611.4801|612.7005|
    613.9212|615.142|616.3631|617.58435|618.80585|
    620.02747|621.2493|622.47144|623.69366|624.91614"/><y row="631" col="1" list="1.8219452|
    1.8576648|1.8948541|1.9335837|1.9739263|2.0159614|
    2.0597715|2.1054447|2.1530752|2.2027586|2.2546024|
    2.3087146|2.3652134|2.4242232|2.485872|2.5503006|
    2.6176577|2.688096|2.7617812|2.8388884|2.9196048|
    3.0041225|3.0926516|3.1854088|3.282627|3.384555|
    1.6867067|1.7169546|1.74841|1.7811378|1.815192"/></list></data></plot><plot id="25002" label1="hioqshihqsihioqottype="xy" sn="temp" xaxtype="engine-cyclic" xcycle="4-stroke" xlabel="sdvsv="61" ylabel="Temperature [UNIT]" yunit="32" zunit="0">
    <data datatype="xy" sdg2" name="cylàiàvq" typesdff="32" zunit="0">
    <list><x row="631" col="1" list="-94.847176|
    -93.62446|-92.40155|-91.17844|-89.955124|-88.731606|
    -87.50789|-86.283966|-85.05985|-83.83553|-82.61101|
    <list><x row="631" col="1" list="-94.847176|
    -93.62446|-92.40155|-91.17844|-89.955124|-88.731606|
    -87.50789|-86.283966|-85.05985|-83.83553|-82.61101|
    -81.38629|-80.16137|-78.93625|-77.71092|-76.4854|
    -75.259674|-74.03375|-72.80763|-71.58131|-70.35478|
    -69.12806|-67.90113|-66.67401|-65.446686|-64.21916|
    -62.991436|-61.76351|-60.53539|-59.307064|-58.078545|
    -56.84982|-55.6209|-54.391777|-53.16246|
    607.81995|609.0398|610.2598|611.4801|612.7005|
    613.9212|615.142|616.3631|617.58435|618.80585|
    620.02747|621.2493|622.47144|623.69366|624.91614"/><y row="631" col="1" list="1.8219452|
    1.8576648|1.8948541|1.9335837|1.9739263|2.0159614|
    2.0597715|2.1054447|2.1530752|2.2027586|2.2546024|
    2.3087146|2.3652134|2.4242232|2.485872|2.5503006|
    2.6176577|2.688096|2.7617812|2.8388884|2.9196048|
    3.0041225|3.0926516|3.1854088|3.282627|3.384555|
    1.6867067|1.7169546|1.74841|1.7811378|1.815192"/></list></data></plot><plot id="25002" label1="hioqshihqsihioqottype="xy" sn="temp" xaxtype="engine-cyclic" xcycle="4-stroke" xlabel="sdvsv="61" ylabel="Temperature [UNIT]" yunit="32" zunit="0">
    <data datatype="xy" sdg2" name="cylàiàvq" typesdff="32" zunit="0">
    <list><x row="631" col="1" list="-94.847176|
    -93.62446|-92.40155|-91.17844|-89.955124|-88.731606|
    -87.50789|-86.283966|-85.05985|-83.83553|-82.61101|
    Le format est quasi identique au précédent. Ce qui est récurent c'est que les nombres que je souhaite extraire sont toujours après le string list=".
    Sinon il y très peu de récurrence. Je ne sais donc pas trop comment m'y prendre.

    Merci d'avance de votre aide.

  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
    Ceci ressemble à un format XML.

    Tu peux utiliser la fonction de lecture xmlread (voir la fonction parseXML données dans la documentation) pour lire les fichiers puis extraire les valeurs numériques des champs XML lus

    [Edit] En y regardant de plus près, il y a des soucis de balisage pour la lecture XML
    Pourrais-tu nous dire quel logiciel génère ces fichiers ?
    Pourrais-tu nous transmettre un de ces fichiers (dans une archive zip ou rat) ?
    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 du Club
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Merci pour votre réponse, j'ai mis un fichier en pièce jointe.
    Fichiers attachés Fichiers attachés

  4. #4
    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
    Voici une idée :

    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
    xDoc = xmlread('exemple.gu');
     
    allx = xDoc.getElementsByTagName('x');
    ally = xDoc.getElementsByTagName('y');
     
    for n = 0:allx.getLength-1
     
        x_txt{n+1} = char(allx.item(n).getAttribute('list'));
        y_txt{n+1} = char(ally.item(n).getAttribute('list'));
     
    end
     
    x_txt = strrep(x_txt, '|', ' ');
    y_txt = strrep(y_txt, '|', ' ');
     
    x = cellfun(@str2num, x_txt, 'UniformOutput', false);
    y = cellfun(@str2num, y_txt, 'UniformOutput', false);
    Les valeurs numériques sont au final stockées dans deux tableaux de cellules

    Par curiosité, quel logiciel génère ces fichiers ?
    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)

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Merci cela marche plutôt bien.
    Le logiciel est GT-Power un logiciel de simulation numérique.

    Est-il également possible de sortir de la même façon les "string" en gras ci-dessous (L259 et L513) pour chaque série de donnée ?:

    L259
    1.6867067|1.7169546|1.74841|1.7811378|1.815192"/></list></data></plot><plot id="25002" label1="EngCylinder part cylinder-01" name="Temperature" plottype="xy" sn="temp" xaxtype="engine-cyclic" xcycle="4-stroke" xlabel="Crank Angle [UNIT]" xunit="61" ylabel="Temperature [UNIT]" yunit="32" zunit="0">

    L260
    <data datatype="xy" dbname="" filetype="2" name="cylinder-01" type="exp" xunit="61" yunit="32" zunit="0">

    L513
    411.51013|413.35733|415.2496|417.1884|419.1745"/></list></data></plot><plot id="25003" label1="EngCylinder part cylinder-01" name="Volume" plottype="xy" sn="vol" xaxtype="engine-cyclic" xcycle="4-stroke" xlabel="Crank Angle [UNIT]" xunit="61" ylabel="Volume [UNIT]" yunit="17" zunit="0">
    L514
    <data datatype="xy" dbname="" filetype="2" name="cylinder-01" type="exp" xunit="61" yunit="17" zunit="0">


    Merci de votre aide

  6. #6
    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
    Il suffit de reprendre exactement la même idée en changeant simplement les arguments d'entrée de getElementsByTagName et getAttribute

    Essaie et tiens nous au courant
    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)

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    J'ai essayé cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    xDoc = xmlread('exemple.gu');
     
    allx = xDoc.getElementsByTagName('x');
    ally = xDoc.getElementsByTagName('y');
    allname = xDoc.getElementsByTagName('name');
     
    for n = 0:allx.getLength-1
     
        x_txt{n+1} = char(allx.item(n).getAttribute('list'));
        y_txt{n+1} = char(ally.item(n).getAttribute('list'));
        name_txt{n+1} = char(ally.item(n).getAttribute('name'));
     
    end

    Mais cela ne fonctionne pas

  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
    C'est parce que tu n'as pas le même nombre d'entité x et plot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    xDoc = xmlread('exemple.gu');
     
    allx = xDoc.getElementsByTagName('x');
    allx.getLength
     
    allplot = xDoc.getElementsByTagName('plot');
    allplot.getLength
    donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ans =
     
        39
     
     
    ans =
     
        35
    Il te faut 2 boucles for-end indépendantes
    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
    Membre du Club
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    J'ai donc essayé ça:

    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
    xDoc = xmlread('exemple.gu');
     
    allx = xDoc.getElementsByTagName('x');
    ally = xDoc.getElementsByTagName('y');
    allname = xDoc.getElementsByTagName('name');
     
    for n = 0:allx.getLength-1
     
        x_txt{n+1} = char(allx.item(n).getAttribute('list'));
        y_txt{n+1} = char(ally.item(n).getAttribute('list'));
     
    end
    for n = 0:allname.getLength-1
        name_txt{n+1} = char(allname.item(n).getAttribute('name'));
    end
    Mais cela ne fonctionne toujours pas

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    'name' est un attribut des éléments 'plot', il faut donc récupérer d'abord ces derniers éléments, puis leur attribut 'name'.
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    allplot = xDoc.getElementsByTagName('plot');
    
    for n = 0:allplot.getLength-1
        name_txt{n+1} = char(allplot.item(n).getAttribute('name'));
    end

  11. #11
    Membre du Club
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    J'ai trouvé:
    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
    xDoc = xmlread('exemple.gu');
     
    allx = xDoc.getElementsByTagName('x');
    ally = xDoc.getElementsByTagName('y');
    allplot = xDoc.getElementsByTagName('plot');
     
    for n = 0:allx.getLength-1
     
        x_txt{n+1} = char(allx.item(n).getAttribute('list'));
        y_txt{n+1} = char(ally.item(n).getAttribute('list'));
     
    end
    for n = 0:allplot.getLength-1
        name_txt{n+1} = char(allplot.item(n).getAttribute('name'));
    end
    Merci

  12. #12
    Membre du Club
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Encore une question. Je cherche maintenant à lier les vecteurs x et y avec leurs "plot" respectif. En effet il arrive que des graphiques comportent 2 ou 3 matrices mais je ne sais pas comment savoir quels graphiques comportent plusieurs matrices. (C'est l'explication du fait qu'il y ai 35 éléments "plot" et 39 éléments "x" et "y").

    Je pense que vous l'avez compris le but est de retracer les graphiques enregistrés.

    Merci encore de votre aide.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Ayant la hiérarchie suivante :
    Code xml : 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
    18
    <plot ...>
        <data ...>
            <list ...>
                <x ...>
                <y ...>
            </list>
        </data>
        <data ...>
            <list ...>
                <x ...>
                <y ...>
            </list>
        </data>
        ...
    </plot>
    <plot ...>
        ...
    </plot
    On peut faire comme suit :
    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
    18
    19
    xDoc = xmlread('exemple.gu');
     
    allplot = xDoc.getElementsByTagName('plot');
     
    for n = 0:allplot.getLength-1
        plotElement = allplot.item(n);
        name = char(plotElement.getAttribute('name'));
     
        allDataOfElement = plotElement.getElementsByTagName('data');
        for m = 0:allDataOfElement.getLength-1
            dataElement = allDataOfElement.item(m);
            xElement = dataElement.getElementsByTagName('x').item(0);
            yElement = dataElement.getElementsByTagName('y').item(0);
     
            x = char(xElement.getAttribute('list'));
            y = char(yElement.getAttribute('list'));
     
        end
    end
    Les plots étant eux-mêmes englobés par des éléments <group> ... </group>, tu peux procéder de la même façon.

  14. #14
    Membre du Club
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Merci beaucoup pour ce code seulement, je ne peux plus utiliser la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x = cellfun(@str2num, x_txt, 'UniformOutput', false);
    Car je dois extraire les "double" présent dans un "char".

  15. #15
    Invité
    Invité(e)
    Par défaut
    str2num ne convient pas ici, les valeurs sont séparées par des '|', or cette fonction ne prend que des espaces ou virgules.
    Tu peux par contre utiliser sscanf ou textscan :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    >> sscanf('516.91156|518.1161|519.32086|520.52576|521.7309', '%f|')
     
    ans =
     
      516.9116
      518.1161
      519.3209
      520.5258
      521.7309
    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
    >> textscan('516.91156|518.1161|519.32086|520.52576|521.7309|', '%n', 'delimiter', '|')
     
    ans = 
     
        [5x1 double]
     
    >> ans{1}
     
    ans =
     
      516.9116
      518.1161
      519.3209
      520.5258
      521.7309

  16. #16
    Membre du Club
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Merci beaucoup pour toute votre aide.

  17. #17
    Membre du Club
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Bonjour, j'ai de nouveau deux questions pour mon code:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    clear all
    close all
    [FileName,PathName] = uigetfile('*.gu','Sélectionnez un fichier GT-Power', 'MultiSelect', 'Off');
    xDoc = xmlread(fullfile(PathName,FileName));
     
    allplot = xDoc.getElementsByTagName('plot');
    alldata = xDoc.getElementsByTagName('data');
     
    temp=0;
    for n = 0:allplot.getLength-1
        plotElement = allplot.item(n);
        name = char(plotElement.getAttribute('name'));
        xlegend = char(plotElement.getAttribute('xlabel'));
        ylegend = char(plotElement.getAttribute('ylabel'));
        group = char(plotElement.getAttribute('label1'));
        allDataOfElement = plotElement.getElementsByTagName('data');
        figure('Name',name,'NumberTitle','off') 
        for m = 0:allDataOfElement.getLength-1
            data = allDataOfElement.item(m);
            xElement = data.getElementsByTagName('x').item(0);
            yElement = data.getElementsByTagName('y').item(0);
     
            x = char(xElement.getAttribute('list'));
            y = char(yElement.getAttribute('list'));
     
            x2 =sscanf(x, '%f|');
            y2 =sscanf(y, '%f|');
     
            hold all
            p(m+1) = plot(x2,y2);
            datname = char(alldata.item(n+temp).getAttribute('name'));
            leg{m+1}=datname;
            if (m~=0)
                datname = char(alldata.item(n+m+temp).getAttribute('name'));
                leg{m+1}=sprintf(datname,m+1);
            end
            hold on
        end
        temp=temp+m;
        title(name)
        xlabel(xlegend);
        ylabel(ylegend);
        legend(p,leg)
        clearvars leg
        grid on
    end
    1) J'ai un message d'erreur pour mes legendes:

    Warning: Ignoring extra legend entries.
    > In legend at 286
    In dep_gt at 44


    2) Jaimerais ranger mes figures par groupes de figures qui sont fonction de la variable group dans mon code mais je ne sais pas comment faire.

    Merci d'avance de votre aide.

  18. #18
    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 odjapo Voir le message
    1) J'ai un message d'erreur pour mes legendes
    Il faut aussi nettoyer la variable p :

    Citation Envoyé par odjapo Voir le message
    2) Jaimerais ranger mes figures par groupes de figures qui sont fonction de la variable group
    C'est à dire ?

    Veux-tu une fenêtre par groupe avec un seul objet Axes et toutes les courbes du groupe superposées ?
    Ou bien une fenêtre par groupe avec autant d'objets Axes (via subplot) que de courbes du groupe ?
    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)

  19. #19
    Membre du Club
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Pour les groupes je pensais à une fenêtre graphique par groupe et avoir la possibilité (en cochant une case ou en selectionnant dans un menu déroulant), d'afficher la série xy de mon choix.
    Exemple afficher la série "Temperature" du groupe "EngCylinder part cylinder-01".

Discussions similaires

  1. quelques soucis de lecture de fichiers avec fscanf
    Par monsieurab dans le forum Bibliothèque standard
    Réponses: 2
    Dernier message: 05/11/2008, 14h28
  2. Lecture de fichier avec fread.Taille limitée?
    Par cheveche4 dans le forum C
    Réponses: 5
    Dernier message: 15/06/2007, 14h56
  3. lecture de fichier avec comparaison
    Par idsec dans le forum Web
    Réponses: 1
    Dernier message: 25/04/2007, 17h25
  4. lecture de fichier avec ftplib
    Par yggdrazil dans le forum Réseau/Web
    Réponses: 2
    Dernier message: 14/10/2006, 21h47
  5. [LG]Lecture de fichier avec une adresse internet
    Par forbin dans le forum Langage
    Réponses: 8
    Dernier message: 09/02/2005, 19h00

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