一、MATLAB中常用保存图片的函数
博主常用的几个保存函数分享如下。
(1)saveas()函数
具体格式为:saveas (gcf, 'filename', 'format')
其中:gcf表示图形句柄,"gcf"是"get current figure"的缩写;filename表示图片名称;format表示图片格式。
clc;clear all;close all;
x = 0:0.1:2*pi;
y = sin(x);
yfig = figure('name','正弦图像','color','w'); % 定义图像句柄、图像名称、背景颜色
plot(x,y,'k-','LineWidth',1.5); % 定义线型,线宽
hold on; grid on;
xlabel('x');ylabel('y');
saveas(yfig,'正弦图像','png'); % 保存格式为png,默认保存位置为当前文件夹
saveas(yfig,['D:\MATLAB\study','正弦图像','png']); % 指定路径保存
(2)print()函数
具体格式为:print (gcf, 'filename', 'formattype')
其中:gcf表示图形句柄;filename表示图片名称;formattype表示图片格式。
clc;clear all;close all;
x = 0:0.1:2*pi;
y = sin(x);
yfig = figure('name','正弦图像','color','w'); % 定义图像句柄、图像名称、背景颜色
plot(x,y,'k-','LineWidth',1.5); % 定义线型,线宽
hold on; grid on;
xlabel('x');ylabel('y');
print(yfig,'正弦图像','-dpng','-r300'); % 保存格式为png,默认保存位置为当前文件夹,图片分辨率为300
print(yfig,'D:\MATLAB\study正弦图像.png','-dpng','-r300'); % 指定保存路径
print()函数支持输出的常用图片格式如下:
选项 | 格式 | 选项 | 格式 |
---|---|---|---|
'-djpeg' | .jpg | '-dpng' | .png |
'-dtiff' | .tif | '-dmeta' | .emf |
'-dbmp' | .bmp | '-dhdf' | .hdf |
(3)savefig()函数
具体格式为:savefig(gcf, 'filename')
其中:gcf表示图形句柄,可以省略;filename表示图片名称。
clc;clear all;close all;
x = 0:0.1:2*pi;
y = sin(x);
yfig = figure('name','正弦图像','color','w'); % 定义图像句柄、图像名称、背景颜色
plot(x,y,'k-','LineWidth',1.5); % 定义线型,线宽
hold on; grid on;
xlabel('x');ylabel('y');
savefig(yfig,'正弦图像.fig'); % 保存图片
openfig('正弦图像.fig'); % 打开图片
二、变量自动命名
利用eval()函数可实现变量的自动命名。
clc; clear all; close all;
A = [1 2 3; 6 5 4; 7 8 9];
for i = 1:3
eval(['BL',num2str(i),'=','A(i,:)',';']); % 依次创建变量"BL1"、"BL2"和"BL3"
B(i,:) = eval(['BL',num2str(i)]) + eval(['BL',num2str(i)]).^2; % 依次使用变量"BL1"、"BL2"和"BL3"
end
B % 显示变量B,结果是[2 6 12; 42 30 20; 56 72 90]
三、图片自动编号
利用for循环、num2str()、以及print()函数实现图片的自动编号、命名和保存。
%% 需要绘制4条曲线,每条曲线线性、颜色均不一样
x = load('X_Data.mat'); % x有4列数据
y = load('Y_Data.mat'); % y有4列数据
cline = [0 .5 0; 0 0 1; 1 0 0; 0 .7 .7]; % 利用RGB数组设置颜色
vline = {':', '--', '-', '-.'}; % 线型设置
for i = 1:4
str1 = ['第',num2str(i),'个图'];
eval(['yfig',num2str(i),'=','figure(''name'',str1,''color'',''w'')',';']);
plot(x(:,i),y(:,i),char(vline(k)),'Color',cline(i,:));
hold on;grid on;
xlabel('时间'),ylabel('成本(万元)');
set(gcf,'unit','centimeters','Position',[4 2 12 5.5]); % 设置图片显示位置以及大小
print(eval(['yfig',num2str(i))]),[str1,'.png'],'-r300','-dpng'); %设置图片格式、分辨率
end