我有一个从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);
答案 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