【MATLAB】将多个图像输出到单个图形窗口上:使用 subplot 函数创建子图

引言

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');
相关推荐
心祭丫丫3 分钟前
【每天一个 Python 小案例17】Python 实现通讯录
开发语言·人工智能·笔记·python·学习
露天赏雪30 分钟前
第3篇:Sentinel熔断降级实战:大模型接口抖动时的服务兜底方案
java·开发语言·人工智能·spring boot·spring·servlet·sentinel
yeccheng3 小时前
MySQL 索引超详解:从底层 B+ 树到面试高频考点
java·开发语言·jvm·mysql·面试
联犀3 小时前
纯 Go 的 CAD 开源库 go-cad:直接解析 DWG/DXF,现在也能导出 PDF
开发语言·golang·pdf
zjxtxdy3 小时前
C++面向对象程序开发-类与对象
开发语言·c++
Evand J5 小时前
【PMSM例程】(14)永磁同步电机无迹卡尔曼滤波(UKF)定子电阻在线辨识与补偿。电阻变化跟踪及预测误差对比仿真。附完整代码的下载链接
matlab·电机·滤波·卡尔曼滤波·永磁同步电机·无迹卡尔曼滤波·pmsm
qq_406981035 小时前
c++拷贝构造函数
开发语言·c++
爱喝雪碧的可乐6 小时前
MATLAB
开发语言·算法·matlab
H.莓飛8 小时前
【C++】【STL】vector_OJ题
linux·服务器·开发语言·数据结构·c++·visual studio
严肃小白兔8 小时前
MATLAB 优秀开源项目与工具箱推荐:涵盖通信、图像处理、脑机接口等九大领域
图像处理·matlab·信息与通信·开源项目