How do I delete a field variable from a structure

I have variable in gui: handles.Data; Data is type: 70x50x2 logical. I need to delete the variable data. When i write: delete(handles.Data); or clean(handles.Data); then get an error: Argument must contain a string. :(
Thank you

1 件のコメント

Jiro Doke
Jiro Doke 2012 年 2 月 19 日
I'm going to rename the title to better reflect the question.

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

 採用された回答

Jiro Doke
Jiro Doke 2012 年 2 月 19 日

4 投票

handles.Data is a field of variable handles. To delete a field,
handles = rmfield(handles. 'Data');
To set the field to empty,
handles.Data = [];

1 件のコメント

Martin
Martin 2012 年 2 月 19 日
Finally, it works as follows: handles=rmfield(handles,'Data');
Thx!

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

その他の回答 (2 件)

Jan
Jan 2012 年 2 月 19 日

1 投票

Same effect as rmfield, but about 10 times faster: FEX: fRMField
Image Analyst
Image Analyst 2012 年 2 月 19 日

1 投票

Try this robust code, to avoid errors:
% Try to remove the field called Data, if there is one.
% First see if there is a field called "Data."
hasField = isfield(handles, 'Data') % Will be True or False.
% Now remove it if it's there.
if hasField
% Field is there. Remove it.
handles = rmfield(handles, 'Data')
else
% Field is not there, warn user.
warningMessage = sprintf('Warning: the structure "handles"\ndoes not have a field called "Data."');
uiwait(warndlg(warningMessage));
end

2 件のコメント

Martin
Martin 2012 年 2 月 20 日
great, it'll use
thx
Trung Hieu Le
Trung Hieu Le 2016 年 6 月 6 日
Thanks for this answer. It is perfect.

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

質問済み:

2012 年 2 月 19 日

コメント済み:

2016 年 6 月 6 日

Community Treasure Hunt

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

Start Hunting!

Translated by