如何自动删除结构

时间:2015-11-03 23:27:35

标签: xml matlab struct

我有一个从100个字段的xml文件创建的结构,这是3个字段的示例:

Parameters.Processing.EnableFilter.Text = true
Parameters.Processing.CutoffFreq.Text = 3000
Parameters.Classification.Threshold.Text = 0.95

我想删除字段" Text"并有一个类似于:

的结构
Parameters.Processing.EnableFilter = true
Parameters.Processing.CutoffFreq= 3000
Parameters.Classification.Threshold = 0.95

这是我能找到的最相似的东西,但它并没有完全符合我的要求。

newName = '';
oldName = 'Text';
[a.newName] = a.(oldName);
a = rmfield(a,oldName);

1 个答案:

答案 0 :(得分:0)

我认为你需要递归

function fix = fixStruct( st, toRemove )
if isfield( st, toRemove )
   fix = st.(toRemove);
else
   fn = fieldnames( st )
   for fi=1:numel(fn)
       fix.(fn{fi}) = fixStruct( st.(fn{fi}), toRemove );
   end
end