1.9.1 矩阵的扩展
在MATLAB中,可以实现矩阵的扩展的函数有4个,下面给予介绍。
(1)cat系列函数。
在MATLAB中,可以通过cat系列函数将多个小尺寸矩阵按照指定的连接方式组合成大尺寸矩阵。这些函数包括cat、horzcat和vertcat。
cat函数可以按照指定的方向将多个小尺寸矩阵连接成大尺寸矩阵,其基本格式为:
其中,dim用于指定连接方向。对于两个矩阵的连接,cat(1,A,B)实际上相当于[A;B],近似于把两个矩阵当作两个列元素来连接;cat(2,A,B)相当于[A,B],近似于把两个矩阵当作两个行元素来连接。
horzcat(A1,A2,...)在水平方向上连接矩阵,相当于cat(A1,A2,...);vercat(A1,A2,...)在垂直方向上连接矩阵,相当于cat(1,A1,A2,...)。
不管哪个连接函数,都必须保证被操作的矩阵可以被连接,即在某个方向上尺寸一致。例如,horzcat函数要求被连接的所有矩阵都具有相同的行数,vertcat函数要求被连接的所有矩阵都具有相同的列数。
【例1-9】通过cat系列函数扩展矩阵。
(2)repmat函数。
在MATLAB中,repmat函数用于实现对矩阵块状的赋值。repmat函数的调用格式为:
可以将a行b列的元素A当作“单个元素”,扩展出r1,...,rN个由此“单个元素”组成的扩展矩阵。
【例1-10】利用块状复制函数repmat扩展矩阵。
(3)blkdiag函数。
在MATLAB中,提供blkdiag函数以对角块生成矩阵。blkdiag函数的调用格式为:
将矩阵a、b、c、d等当作“单个元素”,安排在新矩阵的主对角位置上,其他位置用零矩阵块填充。
【例1-11】利用blkdiag函数以对角块生成矩阵。
(4)kron函数。
在MATLAB中,提供kron函数以实现矩阵的块操作。kron函数的调用格式为:
把矩阵A当作一个“元素块”,先复制扩展出size(A)规模的元素块,然后将每个元素块与A的相应位置的元素值相乘。
【例1-12】利用kron函数对矩阵实现块操作。