引言
subplot
是MATLAB中的一个函数,它用于在单个图形窗口中创建多个子图。这对于同时显示多个图形或图像非常有用。
语法详解
基本语法:
matlab
subplot(m, n, p)
参数详解:
m
指定图形窗口应该分割成多少行n
指定图形窗口应该分割成多少列p
指定当前活动的是哪个子图
注意事项
subplot
函数会自动管理活动子图的切换。当你调用subplot(m, n, p)
时,它会使子图p
成为当前活动的子图,任何后续的绘图命令都会在这个子图上执行,直到你再次调用subplot
切换到其他子图。
举个例子
在一个2x2的子图中绘制四个不同的图形:
matlab
% read image
I = imread('cameraman.tif');
figure,imshow(I); title('Original image');
figure;
% maketform and imtransform
x = pi / 3;
T = [cos(x), sin(x), 0; -sin(x), cos(x), 0; 0, 0, 1];
tform = maketform('affine', T);
I1 = imtransform(I, tform);
subplot(2, 2, 1); imshow(I1); title('maketform and imtransform');
imwrite(I1,'cameraman_rotated_1.jpg');
deg = 60;
% nearest neighborhood
I2 = imrotate(I, deg, "nearest");
subplot(2, 2, 2); imshow(I2); title('imrotate, nearest');
imwrite(I2,'cameraman_rotated_2.jpg');
% bilinear
I3 = imrotate(I, deg, "bilinear");
subplot(2, 2, 3); imshow(I3); title('imrotate, bilinear');
imwrite(I3,'cameraman_rotated_3.jpg');
% bicubic
I4 = imrotate(I, deg, "bicubic");
subplot(2, 2, 4); imshow(I4); title('imrotate, bicubic');
imwrite(I1,'cameraman_rotated_4.jpg');