Matlab 显示图片和SubPlot命令

最近写个图片搜索引擎,恶补Matlab中。。。。

  • matlab显示图片命令:*
    1
    2
    f1=imread('E:/iaprtc12/iaprtc12/images/02/2007.jpg') %读取图像矩阵
    imshow(f1) %显示该图像

  • 但是如果需要在一个界面内显示多幅图片 就需要SubPlot命令帮助了*

形式:subplot(m,n,p)或者subplot(m n p)

说明:subplot是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果第一个数字是2就是表示2行图。p是指你现在要把曲线画到figure中哪个图上,最后一个如果是1表示是从左到右第一个位置,n*m表示最后一个图。

形式:subplot(m,n,p)或者subplot(m n p)

说明:P也可以是向量表示将P 中指定的小块合并成一个大块创建坐标系,P 中指定的小块可以不连续,甚至不相连。比如subplot(2,3,[2 5])表示将第2和5小块连成一个大块;subplot(2,3,[2 6])由于2和6不连续也不相连,此时表示将第2、3、5和6四块连成一个大块,相当于subplot(2,3,[2 3 5 6])

形式:subplot('Position',[left bottom width height])

说明:在指定位置创建一个新坐标系,等效于

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
axes('Position',[left bottom width height])
f1=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,1),1)) '.jpg']);%读取图像矩阵
f2=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,2),1)) '.jpg']);%读取图像矩阵
f3=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,3),1)) '.jpg']);%读取图像矩阵
f4=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,4),1)) '.jpg']);%读取图像矩阵
f5=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,5),1)) '.jpg']);%读取图像矩阵
f6=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,6),1)) '.jpg']);%读取图像矩阵
f7=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,7),1)) '.jpg']);%读取图像矩阵
f8=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,8),1)) '.jpg']);%读取图像矩阵
f9=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,9),1)) '.jpg']);%读取图像矩阵
f10=imread([DIRS.SOURCEIMG num2str(idxfile(IX(1,10),1)) '.jpg']);%读取图像矩阵
subplot(2,5,1)
imshow(f1);%显示该图像
subplot(2,5,2)
imshow(f2);%显示该图像
subplot(2,5,3)
imshow(f3);%显示该图像
subplot(2,5,4)
imshow(f4);%显示该图像
subplot(2,5,5)
imshow(f5);%显示该图像
subplot(2,5,6)
imshow(f6);%显示该图像
subplot(2,5,7)
imshow(f7);%显示该图像
subplot(2,5,8)
imshow(f8);%显示该图像
subplot(2,5,9)
imshow(f9);%显示该图像
subplot(2,5,10)
imshow(f10);%显示该图像

缺点是我不知道怎么比较好的控制图片的大小(请高手指教),好像每个子区域的大小是默认设置的,而且图片会默认的四周留空,不过反正只是为了更清楚的看到实验结果,这个没什么关系。

  • 绘制图表的话,就比较容易控制图片的大小和位置*

例如:

1
2
3
4
5
6
7
t=0:0.001:1;
y1=sin(10*t);
y2=sin(15*t);
subplot(211)
plot(t,y1)
subplot(212)
plot(t,y2)

或者通过axes函数来重新规定子窗口的大小和位置

   axes('position',[.1 .1 .8 .6])
   mesh(peaks(20));
   axes('position',[.1 .7 .8 .2])
   pcolor([1:10;1:10]);
*```

![](http://pics.naaln.com/blog/2019-01-14-062329.jpg-basicBlog)

The Why·Liam·Blog by WhyLiam is licensed under a Creative Commons BY-NC-ND 4.0 International License.

WhyLiam创作并维护的Why·Liam·Blog采用创作共用保留署名-非商业-禁止演绎4.0国际许可证

本文首发于Why·Liam·Blog (https://blog.naaln.com),版权所有,侵权必究。

本文永久链接:https://blog.naaln.com/2013/09/matlab-displays-pictures-and-subplot-command/