How to clear variable from GUI?

4 views (last 30 days)
Ibro Tutic
Ibro Tutic on 16 Jun 2017
Commented: Adam on 16 Jun 2017
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);

Answers (1)

Adam
Adam on 16 Jun 2017
Edited: Adam on 16 Jun 2017
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 Comments
Ibro Tutic
Ibro Tutic on 16 Jun 2017
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 on 16 Jun 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.

Sign in to comment.

Categories

Find more on Structures in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!