Bonjour,
La doc, les FAQ et les posts n'ayant pas répondu à ma question, je m'en remets à vous...
Je travaille sous MATLAB 7.1.0.246 (R14) Service Pack 3 et je réalise un GUI permettant de tracer de 0 à 3 courbes, selon le choix de l'utilisateur : 3 checkboxs sont disponibles ('F(T)','V(T)' et 'Z(T)').
Si j'avais à coup sûr 3 courbes à tracer, je le ferais ainsi, ça marche :
Le nombre de courbes étant déterminé par les checkbox cochées, je teste chacune d'elle et incrémente si besoin à chaque test les listes "list_courbe" et "list_legende".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 list_legende = {'F(T)','V(T)','Z(T)'}; list_courbe = [plot(T,F,'g') plot(T,V,'r') plot(T,Z,'b')]; legend(list_courbe,list_legende)
Pour "list_courbe" ça donne :
Mais qu'en est-il de la légende ? J'ai fait différents essais mais je n'arrive pas à ajouter un élément à ma list_légende comme je le fais pour ma list_courbe.
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 list_courbe = []; % détermine les courbes à tracer if get(handles.checkbox1,'value')==1 % si la checkbox1 est cochée list_courbe = [list_courbe plot(T,F,'g')]; end if get(handles.checkbox2,'value')==1 % si la checkbox2 est cochée list_courbe = [list_courbe plot(T,V,'r')]; end if get(handles.checkbox3,'value')==1 % si la checkbox2 est cochée list_courbe = [list_courbe plot(T,Z,'b')]; end % trace si au moins une courbe if not(isempty(list_courbe)) list_courbe; end
Typiquement, cette formulation ne fonctionne pas (question de gestion des cell):
Dans la fenêtre de commande, cela me donne ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 % à insérer dans chacune des boucles "if" précédentes : list_legende = {list_legende 'V(T)'};
Si vous avez une idée de l'opérateur à utiliser pour cette concaténation, merci de votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 >> list_legende = {'V(T)' 'Z(T)'} list_legende = {list_legende 'F(T)'} list_legende = 'V(T)' 'Z(T)' list_legende = {1x2 cell} 'F(T)' % au lieu de : list_legende = 'V(T)' 'Z(T)' 'F(T)'
Cordialement
Arnaud
Partager