我有一个结构变量parameters
,其他变量只有foo1
,foo2
。 parameters
有20个字段。恩。 a,b,c,d,e ...
我想只保存18个字段。我不想保存parameters.a
和parameters.b
。所以除了字段parameters
和a
以及b
和foo1
之外,我想保存foo2
。我怎么能这样做?
答案 0 :(得分:1)
您可以在使用rmfield
保存字段之前删除字段。
tosave = rmfield(parameters, {'a', 'b'});
save(filename, '-struct', 'tosave');
或者您可以获取所有字段的列表,删除您不想要的字段,然后将这些字段传递给save
。这样做的另一个好处是无需复制struct
。
% Get all fields of parameters
allfields = fieldnames(parameters);
% Remove the fields you don't want to keep
fields = allfields(~ismember(allfields, {'a', 'b'}));
% Now save the rest
save(filename, '-struct', 'parameters', fields{:});
或者正如@excaza所说,您可以使用-regexp
标记制作正则表达式,以排除您不想要的变量。