我在一个文件夹中有几个MATLAB .fig文件(比如folder/file1.fig
,folder/file2.fig
,......等。)
我想将它们全部导出为单独的.png文件。我知道我可以在MATLAB中打开每个.fig文件,它们只是手动逐个导出它们,但这非常耗时,我正在寻找更优雅的东西,比如在MATLAB中循环遍历所有文件并使用MATLAB函数导出它们。
在MATLAB中是否可以这样?我应该怎么做呢?
答案 0 :(得分:1)
喜欢这个吗?
files = dir('.....');
for i = 1:length(files)
currentfile = files(i).name;
f = openfig(currentfile);
print(f,'-dpng',[currentfile(1:end-3),'png']);
close(f);
end
答案 1 :(得分:1)
您可以使用openfig
从目录加载.fig文件,这将自动打开图形并将句柄返回到图中。然后,您可以使用saveas
(或文件交换中的export_fig
)将数字保存为PNG。
folder = '/my/folder';
% Get all .fig files in the folder
files = dir(fullfile(folder, '*.fig'));
files = fullfile(folder, {files.name});
for k = 1:numel(files)
% Get the filename
[~, fname] = fileparts(files{k});
% Open and display the .fig file
hfig = openfig(files{k});
% Save as a PNG file with the same name as the .fig file
saveas(hfig, fullfile(folder, [fname, '.png']))
% Close the figure again
close(hfig)
end
如果您不希望数字在打开时不断弹出,您可以指定visibility input到openfig
,这样您就可以加载并保存数字,而无需将其渲染到屏幕。
hfig = openfig(files{k}, 'invisible');