避免在Matlab中保存图形

时间:2017-08-08 05:45:53

标签: matlab plot matlab-figure

启动R2014b Matlab改变了使用save命令保存变量的方式; Matlab还改变了图形句柄的保存方式,现在将它们保存为结构。如果在工作区中有图形句柄,Matlab需要更长的时间来保存mat文件,mat文件的大小很大,当你加载文件时,所有保存的数字都会弹出,这让我很恼火。它还会产生警告:

Warning: Figure is saved in Oakley_19_PDEparameterEstimation.mat. Saving graphics handle variables can cause the creation
of very large files. To save graphics figures, use savefig. 

我有一个简单明了的问题:

  

如何避免保存所有图形句柄?

请不要建议我可以clearvars在保存之前计算出句柄。

由于

2 个答案:

答案 0 :(得分:3)

您可以使用whossave获取有关当前工作空间变量的信息,只有那些类不是图形句柄对象的变量(即类名称字符串不包含'matlab.graphics''matlab.ui'):

varData = whos;
saveIndex = cellfun(@isempty, regexp({varData.class}, 'matlab.(graphics|ui)'));
saveVars = {varData(saveIndex).name};
save('no_handles.mat', saveVars{:});

答案 1 :(得分:0)

您可以选择保存的变量。

示例:

save('data.mat', 'var_name1', 'var_name2', 'var_name3');

其中var_name1等...是您要保存的变量的名称。