将结构的部分字段以外的所有字段保存到 MATLAB 中的文件中

Save all but some fields of a struct to a file in MATLAB

我有一个结构变量,它是 parameters 和一些其他变量,例如 foo1foo2parameters 有 20 个字段。前任。 a,b,c,d,e ... 我只想保存 18 个字段。我不想保存 parameters.aparameters.b。所以我想保存 parameters 除了字段 ab 以及 foo1foo2。我该怎么做?

您可以在使用 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 标志制作一个正则表达式来排除您不需要的变量。