2017-01-26 6 views
0

У меня есть несколько файлов MATLAB .fig в папке (скажем folder/file1.fig, folder/file2.fig, ... и т. Д.).
Я хочу экспортировать их все, чтобы отделить файлы .png. Я знаю, что я могу открыть каждый из файлов .fig в MATLAB, и они просто экспортируют их один за другим вручную, но это очень трудоемко, и я ищу что-то более элегантное, например, цикл по всем файлам в MATLAB и экспортировать их с помощью функций MATLAB.Загрузите и сохраните несколько файлов .fig как .png-файлы

Возможно ли это в MATLAB? Как мне это сделать?

+0

Give [ 'print'] (https://se.mathworks.com/help/matlab/ref/print.html) попробовать – NLindros

+0

Спасибо за ответ! Не могли бы вы рассказать немного? Я все еще немного новичок в Matlab. –

ответ

0

Нравится?

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 
+0

Отлично! Спасибо за вашу помощь! –

1

Вы можете загрузить файлы .fig из каталога с помощью openfig, которая будет автоматически открывать фигуру и вернуть ручку на рисунке. Затем вы можете использовать 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'); 
+0

Это работает! Большое спасибо! –

+0

Есть ли способ изменить разрешение? –