2.2 矩阵的修改
2.2.1 矩阵部分替换
MATLAB语言可以部分替换矩阵的某个值、某行或者某列的值,常用下面的格式:
其中:
(1)A(m,n)=a1表示替换矩阵A中的第m行,第n列元素为a1;
(2)A(m,:)=[a1,a2,…,an]表示替换矩阵A中第m行的所有元素为a1,a2,…,an;
(3)A(:,n)=[a1,a2,…,am]表示替换矩阵A中第n列的所有元素为a1,a2,…,am。
例如:
2.2.2 矩阵部分删除
MATLAB语言可以部分删除矩阵行或者列,常用下面的格式:
其中:
(1)A(:,n)=[]表示删除矩阵A的第n列;
(2)A(m,:)=[]表示删除矩阵A的第m行。
例如:
2.2.3 矩阵部分扩展
MATLAB语言可以部分扩展矩阵,生成大的矩阵,常用下面的格式:
1.M=[A;B C]
其中:
(1)A为原矩阵,B和C为要扩展的元素,M为扩展后的矩阵;
(2)需要注意,B和C的行数都要相等;
(3)B和C的列数之和要与A的列数相等。
例如:
2.平铺矩阵函数
MATLAB语言可以利用平铺矩阵函数repmat扩展矩阵,函数的调用格式如下:
其中,M=repmat(A,m,n)表示将矩阵A复制扩展为m×n块。例如:
3.指定维数拼接函数
MATLAB语言可以利用指定维数拼接函数cat拼接矩阵,函数的调用格式如下:
其中:
(1)M1=cat(1,A,B)垂直拼接;
(2)M2=cat(2,A,B)水平拼接;
(3)M3=cat(3,A,B)三维拼接。
例如:
2.2.4 矩阵结构变换
MATLAB语言可以利用函数变换矩阵的结构,常用以下几种函数。
1.上下行对调
MATLAB语言可以用函数flipud上下变换矩阵的结构,常用下面的格式:
其中,M=flipud(A)表示将矩阵A的行元素上下对调,列数不变。例如:
2.左右列对调
MATLAB语言可以用函数fliplr左右变换矩阵的结构,函数的调用格式如下:
其中,M=fliplr(A)表示将矩阵A的列元素左右对调,行数不变,相当于将矩阵A镜像对调。例如:
3.逆(顺)时针旋转
MATLAB语言可以用函数rot90旋转矩阵的结构,函数的调用格式如下:
其中:
(1)M1=rot90(A)表示将矩阵A逆时针旋转90°;
(2)M2=rot90(A,k)表示将矩阵A旋转k倍的90°,当k>0时,逆时针旋转,当k<0时,顺时针旋转。
例如:
4.转置
MATLAB语言可以用转置实现矩阵结构的改变,转置用“'”运算符,调用格式如下:
其中:
(1)当A为实数矩阵时,转置的运算规则是矩阵的行变列,列变行;
(2)当B为复数矩阵时,转置的运算规则是先将B取共轭,然后行变列,列变行,也就是Hermit转置。
例如:
5.矩阵的变维
MATLAB语言可以用函数reshape实现矩阵变维,函数的调用格式如下:
其中,M=reshape(A,m,n)表示以矩阵A的元素构成m×n维M矩阵。显然,M中元素的个数与A相同。
例如: