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 :

Peut-on stocker un plot dans une structure ?


Sujet :

MATLAB

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Points : 61
    Points
    61
    Par défaut Peut-on stocker un plot dans une structure ?
    Tout est dans le titre, peut-on stocker un plot dans une structure ?

    Afin de pourvoir gérer une sauvegarde de session dans un outil que je développe, je souhaiterai sauvegarder un plot dans une structure.

    J'ai essayé avec la fonction hgsave mais celle-ci permet uniquement d'enregistrer le résultat dans un fichier .mat. Je n'ai pas envie de stocker chaque "children" de mon plot, Xdata, Ydata, Title, etc.

    Merci d'avance

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Pourquoi ne pas simplement les stocker dans un .fig ?

    Si tu veux vraiment recoder ce mécanisme, tu as 2 approches opposées:
    - Pure data: stockes tous les enfants/descendants graphiques
    - Reconstruction: tu ne stocke que le stricte minimum: les données et les fonctions ayant générées le graphe, et tu les reéxécute ensuite.
    En gros, si tu ne stockes pas les children, ils seront perdus, sauf si tu as un moyen de les régénerer

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Points : 61
    Points
    61
    Par défaut
    Merci pou les conseils VV33D, je les ai suivis et ça me donne ça en pur data:

    Fonction pour récupérer les information d'un subplot sur mon outil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    %--------------------------------------------------------------------------
    % Fonction pour charger les données d'un plot sous forme de structure
    function [ax_struct] = get_axes_struct(ax_handle)
    hgsave(ax_handle,'testFig');
    ax_struct = load('testFig.fig','-mat');
    delete testFig.fig

    Fonction pour reconstruire mon plot en récupérant le strict minimum :
    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
    %--------------------------------------------------------------------------
    % Fonction pour ploter une structure de données d'un objet axe
    function AxStructPlot(ax_struct)
     
    Y = ax_struct.hgS_070000.children(1,1).properties.YData;
    X = ax_struct.hgS_070000.children(1,1).properties.XData;
    Name = ax_struct.hgS_070000.children(1,1).properties.DisplayName;
    Couleur = ax_struct.hgS_070000.children(1,1).properties.Color;
    Titre = ax_struct.hgS_070000.children(2,1).properties.String;
    xtitre = ax_struct.hgS_070000.children(3,1).properties.String;
    ytitre = ax_struct.hgS_070000.children(4,1).properties.String;
    plot(X,Y,'color',Couleur,'DisplayName',Name)
    grid on; legend('-DynamicLegend');
    title(Titre)
    xlabel(xtitre); ylabel(ytitre);
    La première fonction me permet de stocker ma figure dans une structure de données, la seconde la récupérer ensuite puis l'exploiter. (je partage pour ceux que ça intéresse)


    Pour répondre à ta question VV33D, j'ai voulu stocker les figures sous formats de datas dans une structure car mon but est d'éxploiter cette structure pour publier un rapport Word, j'ai donc besoin de savoir à quel endroit où moment dois-je faire appel à ma figure. Si tu as une solution pour savoir repérer une figure. Je suis preneur

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Points : 61
    Points
    61
    Par défaut
    Je pourrais identifier mes figures en leur donnant un nom spécial lors de l'enregistrement, cependant comment les récupérer plus tard ?
    Autrement dit, comment obtenir la liste de figures stockées à un endroit donné ?

  5. #5
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Si tu utilises hgsave, tu dois pouvoir restaurer la figure sans la replotter ! De plus, ton code de reconstruction est très limité (elle ne gère pas subplots, image(), ticklabels, annotations...)

    Je ne comprends pas ton commentaire. tu veux recréer les figures via word ? Si tu veux juste inclure une image dans word, enregistre sous un format image et importe dans word.

Discussions similaires

  1. peut on appeler la fonction plot dans une boucle
    Par hanen2010 dans le forum MATLAB
    Réponses: 2
    Dernier message: 27/05/2010, 13h39
  2. [Conception] Stocker un objet java dans une structure java
    Par m3allem001 dans le forum Langage
    Réponses: 2
    Dernier message: 19/03/2009, 08h41
  3. Lire un fichier et stocker dans une structure
    Par virtuadrack dans le forum Débuter
    Réponses: 4
    Dernier message: 03/09/2008, 11h23
  4. type void* dans une structure
    Par barbapapaz dans le forum C
    Réponses: 3
    Dernier message: 16/07/2004, 16h11
  5. Comment stocker un ficher dans une table postgres
    Par josoft dans le forum Requêtes
    Réponses: 3
    Dernier message: 23/06/2003, 16h41

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