Valeur par defaut uicontrol (matlab guide)
Fermé
weak007
Messages postés
10
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
11 juillet 2005
-
11 juil. 2005 à 10:16
MooSlim78 - 18 avril 2008 à 13:07
MooSlim78 - 18 avril 2008 à 13:07
3 réponses
Tu dois entrer la valeur par defaut dans le champ tag (ou string, je ne sais plus). Pour trouver ce champ tag (string), tu dois faire click droit sur l'edit text dans guide -> property inspector-> tu remplis le champ vide.
Par ailleur, j ai aussi un problème. Saurais tu m 'aider?
Le voici:
Je dois utiliser Matlab mais j'ai des difficultés à récupérer des données que j'introduis dans les "edit text" de l'interface graphique (GUI). En effet, le message d'erreur ci-dessous apparait:
??? Undefined function or variable 'd'. % d est une variable de mon programme
Error in ==> gui_mainfcn at 75
feval(varargin{:});
Error in ==> GUI2 at 42
gui_mainfcn(gui_State, varargin{:});
??? Error while evaluating uicontrol Callback.
Pourtant, lors de la creation de l'"edit text", j'ai rempli le champ 'tag' avec le nom de ma variable 'd' de façon à ce que je puisse l'utiliser dans mon programme sous 'd'.
Si tu as des infos, ce serait sympa!
Par ailleur, j ai aussi un problème. Saurais tu m 'aider?
Le voici:
Je dois utiliser Matlab mais j'ai des difficultés à récupérer des données que j'introduis dans les "edit text" de l'interface graphique (GUI). En effet, le message d'erreur ci-dessous apparait:
??? Undefined function or variable 'd'. % d est une variable de mon programme
Error in ==> gui_mainfcn at 75
feval(varargin{:});
Error in ==> GUI2 at 42
gui_mainfcn(gui_State, varargin{:});
??? Error while evaluating uicontrol Callback.
Pourtant, lors de la creation de l'"edit text", j'ai rempli le champ 'tag' avec le nom de ma variable 'd' de façon à ce que je puisse l'utiliser dans mon programme sous 'd'.
Si tu as des infos, ce serait sympa!
Bonjour,
une astuce qui peut vous être utile. Pour les uicontrol de style edit, il faut les créer avec un texte vide. Je m'explique avec des exemple Scilab (mais cela ne doit pas changer beaucoup sur matlab) :
clear,clc,close();
//On créé une figure :
//Windows size :
Xsize = 500;
Ysize = 300;
//Windows display :
f = figure('figure_name','Exemple','pos',[0 0 Xsize Ysize]);
// Puis on y met un edit :
uicontrol(f,'style','edit','fontsize',12,'pos',[120 Ysize-60 50 20],'Horizontalalignment','center','string','','tag','tag_Nfile_ini');
//On créé une fonction qui va récupérer la valeur entrée et y donner un nom de variable :
function Nfile=Load()
//Pour récupérer l'information de l'édit :
Nfile = evstr(get(findobj('tag','tag_Nfile_ini'),'string')); //evstr me permet de récupérer un nombre entier.
endfunction
//On peux créer un bouton pour charger les informations :
uicontrol(f,'style','pushbutton','pos',[100 Ysize-100 300 20],'string','Load values','callback',"N=Load()");
//---------------------Fin de l'exemple code----------------
Une fois que vous cliques sur le bouton, votre variable N apparait dans votre éditeur de variables.
J'espère que ce petit exemple à pu vous aider.
Un petit problème subsiste : comment avec une fonction à plusieurs sorties (exemple : function [a,b]=Load()) récupérer les deux variables de sorties ? Je pense que c'est juste un problème de syntaxe mais je n'y trouve pas de solution.
Cordialement
une astuce qui peut vous être utile. Pour les uicontrol de style edit, il faut les créer avec un texte vide. Je m'explique avec des exemple Scilab (mais cela ne doit pas changer beaucoup sur matlab) :
clear,clc,close();
//On créé une figure :
//Windows size :
Xsize = 500;
Ysize = 300;
//Windows display :
f = figure('figure_name','Exemple','pos',[0 0 Xsize Ysize]);
// Puis on y met un edit :
uicontrol(f,'style','edit','fontsize',12,'pos',[120 Ysize-60 50 20],'Horizontalalignment','center','string','','tag','tag_Nfile_ini');
//On créé une fonction qui va récupérer la valeur entrée et y donner un nom de variable :
function Nfile=Load()
//Pour récupérer l'information de l'édit :
Nfile = evstr(get(findobj('tag','tag_Nfile_ini'),'string')); //evstr me permet de récupérer un nombre entier.
endfunction
//On peux créer un bouton pour charger les informations :
uicontrol(f,'style','pushbutton','pos',[100 Ysize-100 300 20],'string','Load values','callback',"N=Load()");
//---------------------Fin de l'exemple code----------------
Une fois que vous cliques sur le bouton, votre variable N apparait dans votre éditeur de variables.
J'espère que ce petit exemple à pu vous aider.
Un petit problème subsiste : comment avec une fonction à plusieurs sorties (exemple : function [a,b]=Load()) récupérer les deux variables de sorties ? Je pense que c'est juste un problème de syntaxe mais je n'y trouve pas de solution.
Cordialement