我有一个绘图对象,比方说,
obj = line(0,0);
可以轻松删除
delete(obj);
但是如果obj是嵌套的,比如
obj.r = line(0,0);
无法以这种方式删除obj,否则会出现此错误:
Error using delete
Argument must contain a string.
那么如何删除这种嵌套对象?
obj.r = line(0,0);
obj.t = line(0,0);
obj.q = line(0,0);
works:
delete(obj.r);
delete(obj.t);
delete(obj.q);
doesn't work
delete(obj);
答案 0 :(得分:0)
如果obj
是一个结构但没有嵌套(你obj.r
和obj.t
但不obj.p.r
)structfun
可能会做你想要的,这应该在delete
的每个字段上调用obj
。
structfun(@delete,obj)
如果你有嵌套它会变得更复杂(取决于你有多少层)。您可以使用fieldnames
执行某些操作,检查是否有任何字段本身是结构,然后对这些字段使用structfun
。