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);

回答 (1 件)

Adam
Adam 2017 年 6 月 16 日
編集済み: Adam 2017 年 6 月 16 日

0 投票

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 件のコメント

Ibro Tutic
Ibro Tutic 2017 年 6 月 16 日
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 2017 年 6 月 16 日
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.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeCreating, Deleting, and Querying Graphics Objects についてさらに検索

質問済み:

2017 年 6 月 16 日

コメント済み:

2017 年 6 月 16 日

Community Treasure Hunt

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

Start Hunting!

Translated by