【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');
相关推荐
D e re k ZH17 分钟前
C++ 系统学习手记:从语法细节到工程实践
开发语言·数据结构·c++·算法
灿飞屋1 小时前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓
xiaoye-duck1 小时前
《C++ 项目:手写大模型接入 SDK》Ollama接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
总要学点什么2 小时前
第98篇:三维特效-材质线效果——给一条线换十种材质,虚线的图案只填了一半
开发语言·前端·javascript·ecmascript·gis·webgl·材质
田甲3 小时前
做一款 Type-C 母座读卡器:GL3224 双卡方案实测
c语言·开发语言
严肃小白兔3 小时前
MATLAB 绘图与科研论文插图制作:图形设计、统计表达与矢量导出
开发语言·matlab·科研绘图
Funlang5 小时前
给机器写的 JavaScript 造个笼子
开发语言·javascript·ecmascript
普通人65 小时前
PHP文件读写完全指南
开发语言·php·1024程序员节
坤坤子吖5 小时前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
一晌小贪欢6 小时前
Python基础:第 09 篇 · while 循环:重复直到不满足
开发语言·c++·python·数据可视化·面向对象·python办公