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)