MATLAB自動保存實驗結果圖片

MATLAB自動保存實驗結果圖片

我們的實驗課太難受了,要寫十個程序,有幾十張結果圖片。關鍵是寫實驗報告時,自己一個個保存圖片太麻煩了。因此寫了個matlab程序,能夠自動執行指定目錄下,具有特定名稱的m文件,然後將實驗圖片都保存到一個文件夾中,以便寫實驗報告。

代碼很簡單,但以後能輕鬆很多啦。

%% 程序名:save_fig.m
% 作者: roobie_bird    2019/11/17
% 本程序可以保存當前已創建的所有圖像
function num=save_fig(name,des)

H_fig=findobj('Type','figure'); % 從根目錄開始搜索,找到所有類型爲figure的句柄
for iter=1:length(H_fig)
    fig_name = get(H_fig(iter),'Number');    % 獲取當前fig的編號
   saveas(H_fig(iter),[des,strcat(name,int2str(fig_name),'.png')]);
end
num=length(H_fig);% 保存圖像的數量
%% 程序名:AutoSaveFigs.m
% 作者: roobie_bird    2019/11/17
% 自動保存實驗結果的程序
close all;  % 執行前先關閉所有圖像以免干擾
file_list=dir(['exp2_*.','m']);  % 字符串數組表示要查找的文件名,*是通配符
                                % 路徑也可以寫在前面。
                                % 函數內部會把字符數組拼接起來
[m,~]=size(file_list)
fprintf('[+]搜索到%d個文件',m)

des='實驗2\';  % 準備存放的目錄
str=strcat('[+]目標目錄:',des);
disp(str)
for ind=1:length(file_list)
    filenm=file_list(ind).name;
    run(filenm);     % 按順序執行文件
    nm=findstr(filenm,'.m');
    save_fig(strcat(filenm(1:nm-1),'_'),des);               % 保存文件的所有圖片
    close all;                  % 關閉所有窗口
end
disp('[+]圖片已順利保存')

注意m文件的命名規範,我的命名是這樣的:

在這裏插入圖片描述

執行AutoSaveFigs.m後就能將exp2的所有程序執行一遍並保存圖片到實驗2文件夾中了。

utoSaveFigs.m後就能將exp2的所有程序執行一遍並保存圖片到實驗2文件夾中了。

這只是實現了實驗圖片的自動保存。接下來要做的是根據圖片及代碼文件,自動生成一份實驗報告(桀桀桀,這才方便嘛)。請看我的另一篇文章。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章