首页 > 编程笔记 > MATLAB笔记 阅读:11

subplot在MATLAB中的用法(附带实例)

MATLAB 允许用户在一个图形窗口中同时绘制多幅相互独立的子图,这需要用到 subplot 指令,其语法形式如下:
1) subplot(m, n, k) 指令生成的图形窗口中将会有 m×n 幅子图,k 是子图的编号,编号的顺序为,左上为第一幅子图,先右后下依次排号。该指令产生的子图分割与占位完全按照默认值自动进行。

2) subplot('position', [left bottom width height]) 指令产生的子图的位置由用户指定,指定位置的 4 个元素采用归一化的标称单位,即认为图形窗口的宽、高的取值均在 [0,1] 区间,左下角的坐标为 (0, 0)。

3) 指令产生的子图彼此之间相互独立,所有的绘图指令都可以在任一子图中运用,而对其他的子图不起作用。

4) 在使用 subplot 指令之后,如果想绘制充满整个图形窗口的图形,则应当先使用 clf 指令对图形窗口进行清空操作。

【实例】子图绘制示例。在编辑器窗口中编写 M 文件并命名为 figuresub.m:
clear all
figure
x = 0:0.01*pi:pi*16; j = sqrt(-1);

subplot(1,4,1); plot(abs(sin(x)).*(cos(x)+j*sin(x)), 'LineWidth', 1);
xlim([-1 1]); ylim([-1 1]);

subplot(1,4,2); plot(abs(sin(x/2)).*(cos(x)+j*sin(x)), 'LineWidth', 1);
xlim([-1 1]); ylim([-1 1]);

subplot(1,4,3); plot(abs(sin(x/3)).*(cos(x)+j*sin(x)), 'LineWidth', 1);
xlim([-1 1]); ylim([-1 1]);

subplot(1,4,4); plot(abs(sin(x/4)).*(cos(x)+j*sin(x)), 'LineWidth', 1);
xlim([-1 1]); ylim([-1 1]);
运行程序,绘制的子图如下图所示:


图 1 绘制的子图

相关文章