将结构的部分字段以外的所有字段保存到 MATLAB 中的文件中
Save all but some fields of a struct to a file in MATLAB
我有一个结构变量,它是 parameters
和一些其他变量,例如 foo1
,foo2
。 parameters
有 20 个字段。前任。 a,b,c,d,e ...
我只想保存 18 个字段。我不想保存 parameters.a
和 parameters.b
。所以我想保存 parameters
除了字段 a
和 b
以及 foo1
和 foo2
。我该怎么做?
您可以在使用 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
标志制作一个正则表达式来排除您不需要的变量。
我有一个结构变量,它是 parameters
和一些其他变量,例如 foo1
,foo2
。 parameters
有 20 个字段。前任。 a,b,c,d,e ...
我只想保存 18 个字段。我不想保存 parameters.a
和 parameters.b
。所以我想保存 parameters
除了字段 a
和 b
以及 foo1
和 foo2
。我该怎么做?
您可以在使用 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
标志制作一个正则表达式来排除您不需要的变量。