本节书摘来自异步社区出版社《MATLAB图像处理超级学习手册》一书中的第2章,第2.2节,作者:MATLAB技术联盟 , 张岩 更多章节内容可以访问云栖社区“异步社区”公众号查看。
MATLAB图像处理超级学习手册两个或者两个以上的单个矩阵,按一定的方向进行连接生成新的矩阵,就是矩阵的拼接。矩阵的拼接是一种创建矩阵的特殊方法,它的基础元素是原始矩阵,目标是新的合并矩阵。
2.2.1 基本拼接矩阵的拼接有按照水平方向拼接和按照垂直方向拼接两种方式。例如,对矩阵A和B进行拼接,拼接表达式分别如下。
水平方向拼接:C=[A B]或C=[A,B]。
垂直方向拼接:C=[A;B]。
【例2-4】把3阶魔术矩阵和3阶单位矩阵在水平方向和垂直方向上分别拼接成一个新矩阵。
>>clear all; c= magic(3)%3阶魔术矩阵 d = eye (3)% 3阶单位矩阵 E =[c,d]% 水平方向上拼接 F =[c;d]% 垂直方向上拼接运行结果如下:
c = 8 1 6 3 5 7 4 9 2 d = 1 0 0 0 1 0 0 0 1 E = 8 1 6 1 0 0 3 5 7 0 1 0 4 9 2 0 0 1 F = 8 1 6 3 5 7 4 9 2 1 0 0 0 1 0 0 0 12.2.2 拼接函数在MATLAB中,除了使用矩阵拼接符[]外,还可以使用矩阵拼接函数来拼接函数。具体的函数和功能如表2-2所示。
【例2-5】利用cat函数在不同方向上拼接矩阵。
>>clear all; A1=[1 2;3 4] A2=[5 6;7 8] C1=cat(1,A1,A2) %垂直拼接 C2=cat(2,A1,A2) %水平拼接 C3=cat(3,A1,A2)%三维数组运行结果如下:
A1 = 1 2 3 4 A2 = 5 6 7 8 C1 = 1 2 3 4 5 6 7 8 C2 = 1 2 5 6 3 4 7 8 C3(:,:,1) = 1 2 3 4 C3(:,:,2) = 5 6 7 8