目录
前言
matlab画图的一些基本指令,包括画图、输出字符、保存变量等操作
1、画图
1.1、一维图
1.1.1、一维图的标记符号、线型
标记符号:(标记符号的大小可用 'marksize' 指令)
线型:(线宽:用命令 'linewidth' 来指令:)
示例代码:
x = linspace(0,pi,10); %0-pi等间距插10个值
y1 = cos(x);
figure
% 线型:实线; 符号:o; 符号大小:10; 线宽:4
plot(x,y1,'-o','markersize',10,'linewidth',4)
1.1.2、一维图的颜色
颜色的一种表示方式使用单个字母表示:
红色 | 绿色 | 蓝色 | 黑色 | 白色 | 黄色 | 粉色 | 青色 |
---|---|---|---|---|---|---|---|
r | g | b | k | w | y | m | c |
另外一种表示方式,即用 r,g,b 数值表示(matlab默认最大值为1,可在0-1之间选择)
红色 | 绿色 | 蓝色 | 黑色 | 白色 | 黄色 | 灰色 | 品红 |
---|---|---|---|---|---|---|---|
[1 0 0] | [0 1 0] | [0 0 1] | [0 0 0] | [1 1 1] | [1 1 0] | [0.5 0.5 0.5] | [1 0 1] |
也可以用16进制表示
示例代码:
x=[1,2,3,4,5,6];
y=[1,4,9,16,25,36];
figure
plot(x,y,'color','b') %蓝色
figure
plot(x,y,'color',[0.5 0.5 0.5]) %灰色
figure
plot(x,y,'color','#D95319') %橘黄色
1.2、二维图
1.2.1、二维图的颜色,添加colorbar
示例代码:
I=rand(10); %产生一个随机矩阵,维度10*10
% hot
figure;imagesc(I);colormap(hot)
% summer 并添加colorbar
figure;imagesc(I);colormap(summer);colorbar
1.3、一个图中显示多张子图、一个图中包含多条曲线
示例代码:
x = linspace(0,pi,20);
y1 = cos(x);
y2 = sin(x);
%-----------------------------------------------%
% 一张图上画多张子图
figure
%子图1
subplot(1,2,1); plot(x,y2)
%子图2
subplot(1,2,2);plot(x,y1)
%-----------------------------------------------%
% 一张图上画多条曲线
figure
plot(x,y1)
hold on
plot(x,y2)
1.4、添加图例、标题、坐标轴、网格(子网格)
示例代码:
x = linspace(0,pi,20);
y1 = cos(x);
y2 = sin(x);
figure
plot(x,y1)
hold on %将两个图形画在一个图片里
plot(x,y2)
%标题 字号16, 字体Arial,加粗,红色
title('cos&sin', 'FontSize', 16, 'FontName', 'Arial', 'Color', 'red');
%横坐标 字号14, 字体Arial,加粗,蓝色
xlabel('x label', 'FontSize', 14, 'FontName', 'Arial', 'FontWeight', 'bold', 'Color', 'blue')
%纵坐标 字号14, 字体italic,加粗,绿色
ylabel('y label', 'FontSize', 14, 'FontName', 'Arial', 'FontAngle', 'italic', 'Color', 'green')
legend('cos(x)','sin(x)') %图例
lgd = legend;
lgd.FontSize = 14; %设置图例字体大小
grid on %添加网格
grid minor %子网格
1.5、设置坐标轴范围、图形形状(方形)、不显示坐标轴
示例代码:
x = linspace(0,pi,20);
y1 = cos(x);
y2 = sin(x);
figure
plot(x,y1)
xlim([0 pi/2]) % x轴显示范围
ylim([-0.4 1.4]) % y轴显示范围
axis square %图形为方形
figure
plot(x,y2)
axis square %图形为方形
axis off %不显示坐标轴
2、输出字符
输出字符串、变量的数值等
示例代码:
a=345;
b=789;
disp('====================================')
disp('你好!')
disp(['a的值为: ' num2str(a),' // ', 'b的值为:' num2str(b)]);
% %.2f保留两位小数 /n 换行
fprintf('a = %.2f \n',a);
% %d 整数
fprintf('a = %d \n',a);
2.1、图片名称随变量值改变而改变
有时候会输出几张图片,每张图片的名称是不一样的,可以用下述代码给不同图片加不同的序号。
示例代码:
% 在一张图片中显示4张子图,每张子图的题目不同
figure
for i=1:4
img=rand(10); % 产生随机矩阵
subplot(2,2,i)
imagesc(img)
title(sprintf('rand matrix%d',i))
end
3、保存、加载变量(mat文件)
示例代码:
x=1;
y=12;
z=13;
%保存变量
save filename x y %将变量 x,y 存到 filename.mat 的文件中
save filename %将所有变量存到 filename.mat 的文件中
%加载变量
load filename.mat
load('filename.mat')
4、保存、导入图片(png、bmp格式)
示例代码:
a=rand(10);
imwrite(a,'a.bmp'); %将变量a保存为bmp文件
imwrite(a,'a.png'); %将变量a保存为png文件(将a归一化到[0,1]之间后再写出,读入后1默认为255)
%导入a.bmp a.png文件
I=imread('a.bmp') %数值量化到0-255区间
I2=imread('a.png') %数值量化到0-255区间
4.1、将多张图片保存到一个文件夹中
示例代码:
% 创建保存图片的文件夹
outputFolder = 'figure';
if ~exist(outputFolder, 'dir')
mkdir(outputFolder);
end
% 输出100张随机矩阵图片(png格式),命名为rand_matrix1.png, rand_matrix2.png,......
for i=1:100
% 产生随机矩阵
img=rand(10);
% 创建文件名
filename = fullfile(outputFolder, sprintf('rand_matrix%d.png', i));
% 保存图像为PNG格式
imwrite(img, filename, 'png');
end
disp('输出图片完成')