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 :

Action Post Callback Zoom et Matlab Compiler


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 97
    Par défaut Action Post Callback Zoom et Matlab Compiler
    Bonjour,

    Je dispose d'un script qui fait appel à la fonction Action Post Callback de la fonction zoom de matlab dans le but de récupérer les limites d'un graphique après un zoom et de les afficher dans des editbox. Le script fonctionne mais une fois compilé avec le Matlab Compiler, j'ai beau zoomer sur mon graphique, mes editbox sont désespérément vides. Cette fonction est-elle supportée par le compiler ? Le script a été développé sur un Matlab 2015a et compilé sur un 2013a sous win7.

  2. #2
    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 : 34
    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
    Par défaut
    Salut

    Au premier abord je te dirai de refaire le test en compilant avec une 2015a. Est-ce que tu as laissé une fenêtre de commande dos sur ta version compilé pour voir si il y avait une erreur qui apparaissait ?

    PS: si je te dis ça, c'est parce que n'étant pas familier de ce callback, je ne peux pas directement te répondre sur tes interrogations précises, je te dis juste la démarche que moi je ferai pour essayer de résoudre le problème.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 97
    Par défaut
    Bonjour Gooby,

    Désolé de ne pas avoir répondu plus tôt, les fêtes tout ça.

    Je n'ai pas laissé la fenêtre dos sur ma version compilée. Je vais jeter un oeil là dessus. Merci à toi.

  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 317
    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 317
    Par défaut
    Pour visualiser les éventuelles erreurs, tu peux aussi exécuter directement le code compilé depuis le Command Window de MATLAB :


  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 97
    Par défaut
    Bonjour,

    Après avoir lancé le .exe via Matlab, ce dernier m'affiche bel et bien un message d'erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Warning: An error occurred during the mode callback. 
    > In uitools.uimode.fireActionPostCallback at 14 
      In C:\Program Files\MATLAB\MATLAB Compiler Runtime\v81\mcr\toolbox\matlab\graph2d\zoom.p>localResetPlot at 474 
      In C:\Program Files\MATLAB\MATLAB Compiler Runtime\v81\mcr\toolbox\matlab\graph2d\zoom.p>zoom at 403
    J'ai rangé les informations du zoom dans la même structure que tous mes handles selon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    handlesUCD.zoom = zoom;
    Je lui ai ensuite attribué une fonction à la propriété ActionPostCallback selon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    handlesUCD.zoom.ActionPostCallback = @PostZoom;
    La fonction PostZoom est la suivante :
    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
    function PostZoom(obj,event)
     
    figUCD = getappdata(0,'figUCD');
    handlesUCD = guidata(figUCD);
     
    % Recuperation des nouvelles limites du graphique apres zoom %
    newXLim = event.Axes.XLim;
    newYLim = event.Axes.YLim;
     
    % Actualisation Valeurs Min/Max axis suite au zoom %
    set(handlesUCD.editXMin,'string',num2str(newXLim(1),'%0.2f'));
    set(handlesUCD.editXMax,'string',num2str(newXLim(2),'%0.2f'));
    set(handlesUCD.editYMin,'string',num2str(newYLim(1),'%0.2f'));
    set(handlesUCD.editYMax,'string',num2str(newYLim(2),'%0.2f'));
     
    end
    Je sèche complètement du coup...

Discussions similaires

  1. matlab compilation au C++
    Par rabie80 dans le forum MATLAB
    Réponses: 1
    Dernier message: 06/12/2007, 17h48
  2. Code MATLAB compilé en C/C++
    Par boundrey dans le forum MATLAB
    Réponses: 14
    Dernier message: 04/11/2007, 00h11
  3. [Compiler] Comment savoir si le MATLAB Compiler est installé ?
    Par berberat dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/09/2007, 11h27
  4. Problème avec boucle for() et action POST
    Par Oli_Ifre dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2007, 09h52
  5. [Debutant] Form (Action,Post), lien vers ma servlet
    Par tck-lt dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/12/2006, 12h41

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