0
我有一個結構變量parameters
,其他變量例如foo1
,foo2
。 parameters
有20個字段。恩。 a,b,c,d,e ...
我想只保存18個字段。我不想保存parameters.a
和parameters.b
。所以我想保存parameters
,除了字段a
和b
和foo1
和foo2
。我怎樣才能做到這一點?除了結構的所有字段都保存到MATLAB中的文件中
我有一個結構變量parameters
,其他變量例如foo1
,foo2
。 parameters
有20個字段。恩。 a,b,c,d,e ...
我想只保存18個字段。我不想保存parameters.a
和parameters.b
。所以我想保存parameters
,除了字段a
和b
和foo1
和foo2
。我怎樣才能做到這一點?除了結構的所有字段都保存到MATLAB中的文件中
您可以在將其保存爲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
標誌正則表達式來排除不想要的變量。
或者是一個正則表達式:'save(filename,'-struct','data','-regexp','[^ ab]');'雖然可能比'ismember'多一個痛苦。 – excaza