Bonjour,
Je réalise une interface graphique afin de visualiser des données récupérées lors de mouillage en mer.
J'ai créé un button group (son tag est "visualisation") avec deux radio button à l'intérieur :
un pour visualiser en données cartésiennes (son tag est "cartesien") et l'autre pour visualiser en données polaires (son tag est "polaire").
En m'aidant des informations trouvées sur internet j'ai réussi à écrire ce code dans le fichier .m contenant les lignes de code du GUIDE :
refresh_plots est le fichier où je créée mes programmes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 % --- Executes when selected object is changed in visualisation. function visualisation_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to the selected object in visualisation % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if (hObject == handles.cartesien) set(handles.visutype, 0) else set(handles.visutype, 1); end guidata(gcf, handles) refresh_plots(handles);
C'est ici que j'ai un problème, voici une partie du programme que je tente de modifier pour permettre la différence de visualisation :
Je pense que le test que je lui demande de réaliser est mal codé, quelqu'un pourrait-il m'aider?
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 nb_instr = length(hh.descr_mooring.instrum{mi}); nb_rcm = 0; nb_adcp = 0; nb_cat = 0; for i=1:nb_instr type = lower(char(hh.descr_mooring.instrum{mi}(i))); if strfind(type, 'rcm') nb_rcm = nb_rcm+1; end if strfind(type, 'adcp') nb_adcp = nb_adcp+1; end if strfind(type, 'cat') nb_cat = nb_cat+1; end end j=1; nb_rcm = 0; for i=1:nb_instr type = lower(char(hh.descr_mooring.instrum{mi}(i))); if strfind(type, 'rcm') nb_rcm = nb_rcm+1; fig4= figure(4); set(fig4, 'Name','Module RCM','Posi',[191 34 1088 690]); subplot(nb_instr-(nb_cat+nb_adcp), 1, j); j=j+1; if (handles.visutype == 0) plot(hh.data_mooring.btc8, hh.data_mooring.U8(:,nb_rcm)*0.1) grid ylim([0 80]) ylabel('cm/s') title(hh.descr_mooring.instrum{mi}(i)) tl = get(gca, 'Xtick'); for k=1:length(tl) xtl(k,:) = datestr(tl(k) + (ref_date),20); end set(gca,'Fontsize', 8, 'Xtick', tl, 'Xticklabel', xtl(:, 1:8)) else [x,y] = pol2cart(hh.data_mooring.Cap(:,nb_rcm)*pi/180, hh.data_mooring.U8(:,nb_rcm)*0.1); compass(x,y) end end end
En vous remerciant d'avance![]()
Partager