两个或者两个以上的单个矩阵,按一定的方向进行连接生成新的矩阵,就是矩阵的拼接。矩阵的拼接是一种创建矩阵的特殊方法,它的基础元素是原始矩阵,目标是新的合并矩阵。
矩阵的拼接有按照水平方向拼接和按照垂直方向拼接两种方式。例如,对矩阵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 1
在MATLAB中,除了使用矩阵拼接符[]外,还可以使用矩阵拼接函数来拼接函数。具体的函数和功能如表2-2所示。
表2-2 MATLAB中矩阵拼接函数
续表
【例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