2016年9月16日 星期五

自動儲存繪圖結果的圖形(AutoSaveFigure)

% 省略了很多MATLAB的GUI宣告(Source Code不完整)
% 在GUI裡使用了一個axes

posit = get(handles.figure1,'Position');
set(handles.figure1,'Color',[1 1 1]);  % 設背景顏色為白色
set(handles.axes1,'Position',[6 2 posit(3)-8 posit(4)-2.5]);  % Position中的數值為圖形的調整參數
for i = 3:10
    y = magic(i);
    plot([1:length(y(:))], y(:))
    drawnow;
    im = getframe(handles.figure1); % 擷取畫面
    imwrite(uint8(im.cdata),[num2str(i) '.png']);

end

% 圖形將存成3.png ~ 10.png










此外, 也可以使用script方式產生, 程式碼如下:

h1 = figure('Position', [10 10 450 300], 'Menubar''none', 'Name''AutoSave_figure');
set(h1, 'Color''white')  % 設背景顏色為白色
for i = 3:10
    y = magic(i)
    plot([1:max(y(:))], y(:));
    drawnow;
    im = getframe(h1); % 擷取畫面
    imwrite(uint8(im.cdata),[num2str(i) '.png']);
end