MATLAB合并矩阵的方法汇总(附带实例)
矩阵的合并就是指把两个或两个以上的矩阵数据连接起来得到一个新的矩阵。
在 MATLAB 中,针对二维矩阵 A 和 B,有以下形式:
矩阵构造符号
【实例 1】合并矩阵示例一。在命令行窗口中输入以下语句,并显示相应的输出结果。
【实例 2】合并矩阵示例二。在命令行窗口中输入以下语句,并显示相应的输出结果。
【实例 3】合并矩阵示例三。在命令行窗口中输入以下语句,并显示相应的输出结果。
下图表明具有相同高度的两个矩阵可以在水平方向上合并为一个新的矩阵。

图 1 正确的矩阵合并
而下图则表明不具有相同高度的两个矩阵不允许在水平方向上合并为一个矩阵。

图 2 不正确的矩阵合并
在 MATLAB 中,针对二维矩阵 A 和 B,有以下形式:
- [A,B]:表示按列存储合并矩阵,即将 B 矩阵接到 A 矩阵的列后面;
- [A;B]:表示按行存储合并矩阵,即将 B 矩阵接到 A 矩阵的行后面;
- cat(1, A, B):表示 [A;B],即以行存储;
- cat(2, A, B):同 [A,B];
- cat(3, A, B):表示以第三维组合 A、B,组合后变成三维矩阵。
矩阵构造符号
[ ]
不仅可用于构造矩阵,还可作为矩阵合并操作符。表达式 C=[A B] 表示在水平方向上合并矩阵 A 和 B,而表达式 C=[A; B] 则表示在竖直方向上合并矩阵 A 和 B。【实例 1】合并矩阵示例一。在命令行窗口中输入以下语句,并显示相应的输出结果。
>> clear all >> A = ones(3,4) A = 1 1 1 1 1 1 1 1 1 1 1 1 >> B = zeros(3,4) B = 0 0 0 0 0 0 0 0 0 0 0 0 >> C = [A;B] % 当采用 ; 时,上下合并拼接矩阵 C = 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
【实例 2】合并矩阵示例二。在命令行窗口中输入以下语句,并显示相应的输出结果。
>> clear all >> A = ones(3,4); >> B = zeros(3,4); >> C = [A B] % 当采用空格时,左右合并拼接矩阵 C = 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 >> D = [B,A] % 当采用 , 时,左右合并拼接矩阵 D = 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1
【实例 3】合并矩阵示例三。在命令行窗口中输入以下语句,并显示相应的输出结果。
>> clear all >> A = ones(3,4); >> B = zeros(3,4); >> C = cat(1,A,B) C = 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 >> D = cat(2,A,B) D = 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0可以用矩阵合并符来构造任意大小的矩阵。不过需要注意的是,在矩阵合并的过程中,一定要保持矩阵的形状为方形,否则矩阵合并将无法进行。
下图表明具有相同高度的两个矩阵可以在水平方向上合并为一个新的矩阵。

图 1 正确的矩阵合并
而下图则表明不具有相同高度的两个矩阵不允许在水平方向上合并为一个矩阵。

图 2 不正确的矩阵合并