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