MATLAB/Simulink权威指南:开发环境、程序设计、系统仿真与案例实战
上QQ阅读APP看书,第一时间看更新

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相同。

例如: