两个或者两个以上的矩阵按一定的方向进行连接,生成新的矩阵就是矩阵的拼接。矩阵的拼接是一种创建矩阵的特殊方法,区别在于基础元素是原始矩阵,目标是新的合并矩阵。
矩阵的拼接有按照水平方向拼接和按照垂直方向拼接两种。例如,对矩阵 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