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