matlab保存当前工作区所有图

本文最后更新于 2023年9月25日。

matlab复制图形到剪贴板
https://ww2.mathworks.cn/help/matlab/ref/copygraphics.html

在matlab控制台执行下面命令

run('E:\test\savefig.m')

https://blog.csdn.net/weixin_42943114/article/details/86675872

https://ww2.mathworks.cn/help/matlab/ref/copygraphics.html


>> figHandles = findall(groot, 'Type', 'figure')
figHandles =
7×1 Figure array:
Figure    (2: Left Front Side Near)
Figure    (3: Right Front Side Fire)
Figure    (4: Right Front Side Near)
Figure    (9: ECU X1)
Figure    (10: ECU X2)
Figure    (13: ECU Y2)
Figure    (12: ECU Y1)
>> imwrite('Figure(2: Left Front Side Near)','result.jpg')
Error using imwrite>parse_inputs (line 515)
The first argument should not be a character vector.
Error in imwrite (line 418)
[data, map, filename, format, paramPairs] = parse_inputs(varargin{:});
>> figHandles(1)
ans =
Figure (2: Left Front Side Near) with properties:
Number: 2
Name: 'Left Front Side Near'
Color: [0.9400 0.9400 0.9400]
Position: [2136 451 560 420]
Units: 'pixels'
Show all properties
>> figHandles(2)
ans =
Figure (3: Right Front Side Fire) with properties:
Number: 3
Name: 'Right Front Side Fire'
Color: [0.9400 0.9400 0.9400]
Position: [3104 511 560 418]
Units: 'pixels'
Show all properties
>> imwrite(figHandles(1),'result.jpg')
Error using imwrite (line 420)
Expected DATA to be one of these types:
numeric, logical
Instead its type was matlab.ui.Figure.
>> saveas(figHandles(1),'result.jpg')
>>

保存结果如图:

1、使用imwrite 函数

如图像是img,则可以使用imwrite(img,’result.jpg’); 这种方法保存图像大小和显示的大小是一样的。下面的方法得到的图像和原图像的大小不一样;下面是用该方法保存的图片

我们注意到,用imwrite保存的图片只有图片本身,没有其他内容。

2、直接另存为

在figure中使用菜单file->saveas->选择保存形式(可以保存为fig,eps,jpeg,gif,png,bmp等格式)。这个的缺点是另存为的图像清晰度有很大的牺牲。

3、复制粘贴

在figure中使用菜单edit->copyfigure,此时图像就复制到剪贴板了。要注意的是在“copy options”中要选择“Bitmap”。

4、用saveas命令

Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存。saveas的格式为:saveas(gca, filename, fileformat),其中的三个参数:

(1)gca:图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3;也可以直接用gcf获取当前窗口句柄。

(2)filename:单引号字符串,指定文件名

(3)fileformat:单引号字符串,指定存储格式

例子:

复制

  1. saveas(gcf, ‘save.jpg’); %保存当前窗口的图像
  2. saveas( 2, ‘save.jpg’); %保存Figure 2窗口的图像

下面是用saveas的实验结果:

我们可以看到,saveas保存的结果,有白边,下面的print函数保存的结果同样也是有白边的。如果想将生成的图片用于后续的图像处理,建议使用imwrite函数,否则,用哪种保存函数都可以。

5、print函数

print函数操作打印机,使用plot函数后紧接着用print函数来保存图像。print的格式为: print(figure_handle,fileformat,filename),其中的三个参数:

(1)figure_handle:图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3;也可以直接用gcf获取当前窗口句柄

(2)fileformat:单引号字符串,指定存储格式:

png格式: ‘-dpng’

jpeg格式: ‘-djpeg’,

tiff格式: ‘-dtiff’

bmp格式: ‘-dbitmap’

gif格式:’-dgif’

emf无损格式:’-dmeta’

(3)filename:文件名