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文件夹中了。

这只是实现了实验图片的自动保存。接下来要做的是根据图片及代码文件,自动生成一份实验报告(桀桀桀,这才方便嘛)。请看我的另一篇文章。

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