将多个.fig文件加载并保存为.png文件

时间:2017-01-26 20:14:56

标签: matlab command export matlab-figure

我在一个文件夹中有几个MATLAB .fig文件(比如folder/file1.figfolder/file2.fig,......等。) 我想将它们全部导出为单独的.png文件。我知道我可以在MATLAB中打开每个.fig文件,它们只是手动逐个导出它们,但这非常耗时,我正在寻找更优雅的东西,比如在MATLAB中循环遍历所有文件并使用MATLAB函数导出它们。

在MATLAB中是否可以这样?我应该怎么做呢?

2 个答案:

答案 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 inputopenfig,这样您就可以加载并保存数字,而无需将其渲染到屏幕。

hfig = openfig(files{k}, 'invisible');