How to clear variable from GUI?

I am plotting from a structure called handles.data. I have a push button to clear all graphs and this structure to plot other things, but the clear command doesn't seem to be working. When I try to replot using the same code as before, I get an error saying "Subscripted assignment between dissimilar structures." When I check handles.data, I have a struct with no fields. How would I just remove the variable completely?
try
for i=1:length(handles.graphs)
close(i)
end
clear handles.name
clear handles.data
catch ME
clear handles.name
clear handles.data
handles.j=1;
end
guidata(hObject, handles);

Réponses (1)

Adam
Adam le 16 Juin 2017
Modifié(e) : Adam le 16 Juin 2017

0 votes

handles.data = [];
will reset the field to empty (which is what I usually do because I use an isempty(...) test when using the data)
handles = rmfield( handles, 'data' );
would remove the field.
clear is used for clearing variables, you can't clear a field of a structure with it.
clear handles
would be valid syntax, but do not do this in a GUI as it will remove the whole structure and make your GUI unusable.

2 commentaires

So I attempt to clear the structure by doing
handles.data=[];
When I try to plot again, I get the error "Conversion from double to struct not possible". The structure handles.data is contains a nested structure (handles.data.Plot.data). Does this matter?
Adam
Adam le 16 Juin 2017
Well, after
handles.data = [];
it doesn't contain anything, which was the point, as far as I could tell from your question.
You have posted any plotting code so I have no idea what that does, but if you are trying to plot what is in handles.data then I would assume you have run some code which populates it again after clearing it.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Centre d'aide et File Exchange

Question posée :

le 16 Juin 2017

Commenté :

le 16 Juin 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by