Matlab 如何删除嵌套结构

Matlab 如何删除嵌套结构,matlab,object,Matlab,Object,我有一个绘图对象,比如说 obj=直线(0,0) 可通过以下方式轻松删除: 删除(obj) 但是,如果obj是嵌套的,如 obj.r=直线(0,0) 无法通过这种方式删除obj,否则会出现以下错误: Error using delete Argument must contain a string. 那么如何删除这种嵌套对象呢 编辑 如果obj是一个结构,但不是嵌套的(您obj.r和obj.t但不是obj.p.r)structfun可以执行您想要的操作,这应该在obj的每个字段上调用delet

我有一个绘图对象,比如说

obj=直线(0,0)

可通过以下方式轻松删除:

删除(obj)

但是,如果obj是嵌套的,如

obj.r=直线(0,0)

无法通过这种方式删除obj,否则会出现以下错误:

Error using delete
Argument must contain a string.
那么如何删除这种嵌套对象呢

编辑
如果
obj
是一个结构,但不是嵌套的(您
obj.r
obj.t
但不是
obj.p.r
structfun
可以执行您想要的操作,这应该在
obj
的每个字段上调用
delete

structfun(@delete,obj)
如果有嵌套,它会变得更复杂(取决于有多少层)。您可能可以使用
fieldnames
执行某些操作,检查是否有任何字段本身就是结构,然后在这些字段上使用
structfun

structfun(@delete,obj)