放弃爱 发表于 2019-11-11 16:44:52

matlab 实现绘图和命令行输出自动保存


matlab 实现绘图和命令行输出自动保存
绘图自动保存
对于图片而言,只需要灵活使用 saveas 命令,该命令语法格式如下:
saveas(fig,filename)
saveas(fig,filename,formattype)

请看下例:
close all
clear
clc

x = ;
bar(x);
saveas(gcf,'Barchart.png')

可以在当前目录下得到 Barchart.png 文件。但是这种做法有个问题,就是图片是闪过之后自动关闭并保存。如果我们生成的图片很多,一闪一闪输出图片,不仅会另人感觉不适,并且会降低程序效率。

那怎么实现不显示图片,而自动保存呢?其实只需要加一行代码关闭图形显示就可以了。如下:
close all
clear
clc

figure('Visible', 'off');

x = ;
bar(x);
saveas(gcf,'Barchart.png')


命令行输出自动保存
可以使用 diary 命令实现该功能,例子如下:
close all
clear
clc

diary('myOutputTest.txt')
for i = 1:5
    disp(i);
end

diary off

可以看到当前目录的文件夹下生成了如下文件:


但是上面的这个程序有个问题,如果你重复运行这个程序,那么他会反复地将结果写入制定的文件,这并不是我们所希望的。这是如下编写代码:
close all
clear
clc

filename = 'myOutputTest.txt';
% 检测当前目录下是否存在指定
temp = exist(filename,'file');
% 如果当前目录下存在指定文件,则删除该文件
if temp == 2
    delete(filename);
end
diary('myOutputTest.txt')
for i = 1:5
    disp(i);
end
a = dir;
diary off

这样文件中只会保留最新运行程序产生的结果。

页: [1]
查看完整版本: matlab 实现绘图和命令行输出自动保存