|
matlab 实现绘图和命令行输出自动保存
绘图自动保存
对于图片而言,只需要灵活使用 saveas 命令,该命令语法格式如下:
- saveas(fig,filename)
- saveas(fig,filename,formattype)
复制代码
请看下例:
- close all
- clear
- clc
- x = [2 4 7 2 4 5 2 5 1 4];
- bar(x);
- saveas(gcf,'Barchart.png')
复制代码
可以在当前目录下得到 Barchart.png 文件。但是这种做法有个问题,就是图片是闪过之后自动关闭并保存。如果我们生成的图片很多,一闪一闪输出图片,不仅会另人感觉不适,并且会降低程序效率。
那怎么实现不显示图片,而自动保存呢?其实只需要加一行代码关闭图形显示就可以了。如下:
- close all
- clear
- clc
- figure('Visible', 'off');
- x = [2 4 7 2 4 5 2 5 1 4];
- 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
复制代码
这样文件中只会保留最新运行程序产生的结果。
|
|