Bonjour,

Après une première sélection de fichiers, je voudrais en effectuer une deuxième de sorte que les premiers fichiers sélectionnés ne peuvent plus l'être.
Je me demande s'il est possible de les faire "disparaître" de ma liste, comme quand on rend un bouton invisible.
Sinon, je peux afficher un message d'error. C'est peut-être la solution la plus facile.

Voici le code pour ma première sélection :

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
 
function filepushbutton_Callback(hObject, eventdata, handles)
[filename, pathname, filterindex]=uigetfile( {'*.mat','MAT-files (*.mat)';'*.*','All Files (*.*)'},'Pick a file',  'MultiSelect', 'on');
handles.filename=filename
filename
 
data=[];
 
for i_file = 1:length(filename) 
    file = fullfile(pathname, filename{i_file});
    temp = load(file);
    name = fieldnames(temp);%le nom du champ est le nom de la variable
    value = getfield(temp, name{1});%utilisation des champs dynamiques    data=[data;value];
 
end
handles.data=data;
 
guidata(hObject,handles);
Voici, dans l'idée, ce que je voudrais faire pour ma deuxième sélection :
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
 
function measurementpushbutton_Callback(hObject, eventdata, handles)
 
[filename2, pathname, filterindex]=uigetfile( {'*.mat','MAT-files (*.mat)';'*.*','All Files (*.*)'},'Pick a file',  'MultiSelect', 'on');
 
data2=[];
for i_file2 = 1:length(filename)
    if (filename2{i} != handles.filename)
        return error;
    end
end
 
 
for i_file2 = 1:length(filename) 
    file = fullfile(pathname, filename{i_file});
    temp = load(file);
    name = fieldnames(temp);%le nom du champ est le nom de la variable
    name
    value2 = getfield(temp, name{1});%utilisation des champs dynamiques
    data2=[data2;value2];
end
handles.data2=data2;
 
guidata(hObject,handles);
Est-ce réalisable ainsi?
Et je ne sais pas comment comparer les éléments contenus dans filename et filename2

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
for i_file2 = 1:length(filename)
    if (filename2{i} != handles.filename)
        return error;
    end
end
Merci d'avance pour votre aide, vos idées...