Affichage variable d'un ('Style','text') + comment intégrer un graph issu d'un autre fichier .m ?
Bonjour,
J'ai 2 petits problèmes à résoudre, je m'explique ...
1) Avec le code suivant, j'ai créé un uicontrol de type 'text' qui a pour but d'afficher une variable nommée "Pe" :
Code:
1 2 3 4
| hPe = uicontrol(dataPeclet,'Style','text','Units','Normalized',...
'String','Pe =',...
'Position',[0.45,0.45,0.1,0.25],...
'Tag','nombrepeclet'); |
Ce nombre "Pe" dépend de 3 autres variables (paramétrables grâce à des EDIT BOXES) qui sont "V", "a" et "rs", autrement dit : Pe = f(V,a,rs) . J'aimerais que le 'string' de mon uicontrol hPe change "en direct" lorsque j'édite les variables "V", "rs" ou "a".
J'ai fait appel à un callback :
Code:
1 2 3 4 5
| hPe = uicontrol(dataPeclet,'Style','text','Units','Normalized',...
'String','Pe =',...
'Position',[0.45,0.45,0.1,0.25],...
'Callback',@Peclet,...
'Tag','nombrepeclet'); |
associé à la fonction suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| function Peclet(hObject,eventdata)
% je recupère les variables et je les convertis
a = str2double(get(findobj('Tag','diffusivite'),'string'));
V = str2double(get(findobj('Tag','vitesse'),'string'));
rs = str2double(get(findobj('Tag','rayonsource'),'string'));
Pe = V*rs/a ;
% je modifie le 'string' de hPe
toto = findobj('tag','nombrepeclet');
set(toto,'string',num2str(Pe))
end |
... mais le 'string' ne se modifie pas. J'ai essayé un "num2str(Pe)" directement dans la définition de mon hPe, sans succès :
Code:
??? Undefined function or variable 'Pe'
... apparement normal puisque je ne définis et convertis toutes mes variables (via un pushbutton) qu'après la création de tous mes uicontrols.
Quelqu'un aurait-il une idée ? :roll:
2) Mon premier fichier "fichier1.m" crée ma GUI. Mon deuxième fichier "fichier2.m" reçoit les données du 1er fichier et trace une courbe de résultats dans une nouvelle figure. J'aimerais que cette courbe apparaisse dans la même figure que ma gui.
J'ai préalablement créé dans le 1er fichier un uicontrol de type 'axes' :
Code:
hTemp = axes('Units','Normalized','Position',[0.05,0.55,0.4,0.4]);
Y a t-il une commande pour cela ?
Voila, c'est (enfin) tout pour mes questions :zoubi:
Merci d'avance pour vos réponses .