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 :

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);
refresh_plots est le fichier où je créée mes programmes.
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 :

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
Je pense que le test que je lui demande de réaliser est mal codé, quelqu'un pourrait-il m'aider?
En vous remerciant d'avance