MATLAB subplot()函数的用法(图文并茂,附带实例)
在实际应用中,为了进行不同数据的比较,有时需要在同一个视窗下观察不同的图像。
在 MATLAB 中,如果要在同一图形窗口中分割出所需要的几个窗口来,可以使用 subplot() 函数实现。
subplot() 函数的调用格式如下:
需要注意的是,这些子图的编号是按行来排列的,例如第 s 行第 t 个视图区域的编号为 (s−1)×n+t。如果在执行此函数之前并没有任何图形窗口被打开,那么系统将会自动创建一个图形窗口,并将其分割成 m×n 个视图区域。
在命令行窗口中输入下面的程序:

图 1 显示图形分割
【实例】显示 4×4 图形分割。MATLAB 程序如下:

图 2 绘制图形
在 MATLAB 中,如果要在同一图形窗口中分割出所需要的几个窗口来,可以使用 subplot() 函数实现。
subplot() 函数的调用格式如下:
- subplot(m,n,p):将当前窗口分割成 m×n 个视图区域,并指定第 p 个视图为当前视图。
- subplot('position',[left bottom width height]):产生的新子区域的位置由用户指定,后面的四元组为区域的具体参数控制,宽与高的取值范围都是 [0,1]。
需要注意的是,这些子图的编号是按行来排列的,例如第 s 行第 t 个视图区域的编号为 (s−1)×n+t。如果在执行此函数之前并没有任何图形窗口被打开,那么系统将会自动创建一个图形窗口,并将其分割成 m×n 个视图区域。
在命令行窗口中输入下面的程序:
>> subplot(2,1,1) >> subplot(2,1,2)弹出如下图所示的图形显示窗口,在该窗口中显示两行一列两个图形。

图 1 显示图形分割
【实例】显示 4×4 图形分割。MATLAB 程序如下:
>> close all % 关闭当前已打开的文件 >> clear % 清除工作区的变量 >> t1=(0:11)/11*pi; % 指定绘图区间及间隔值 >> t2=(0:400)/400*pi; % 指定绘图区间及间隔值 >> t3=(0:50)/50*pi; % 指定绘图区间及间隔值 >> y1=cos(t1).*cos(5*t1); % 定义函数y1 >> y2=cos(t2).*cos(5*t2); % 定义函数y2 >> y3=cos(t3).*cos(5*t3); % 定义函数y3 >> subplot(2,2,1),plot(t1,y1,'r.') % 激活2行2列图窗中的第1个视窗,绘制图形1 >> title('(1)点过少的离散图形') % 为第一个图形添加标题 >> subplot(2,2,2),plot(t1,y1,t1,y1,'r.') % 激活第2个视窗,绘制图形1 >> title('(2)点过少的连续图形') % 为第二个图形添加标题 >> subplot(2,2,3),plot(t2,y2,'r.') % 激活第3个视窗,绘制图形2 >> title('(3)点密集的离散图形') % 为第三个图形添加标题 >> subplot(2,2,4),plot(t3,y3) % 激活第4个视窗,绘制图形3 >> title('(4)点足够的连续图形') % 为第四个图形添加标题运行结果如下图所示:

图 2 绘制图形