MATLAB矩阵基础知识(二)

矩阵中的元素与向量中的一样,可以进行抽取引用、编辑修改等操作。

首先生成三个矩阵:

A = ceil( rand(3)*10 ); % (1,10)内均匀分布的随机三阶矩阵
B = ceil( rand(3)*10 );
C = ceil( rand(3,4)*10 );

1、矩阵的运算

(1)矩阵的加减:需要确保两个相加或者相减的矩阵具有相同维度

Y1 = A+B;                              
% Y1 = A.+B ;         % 报错,无效运算符  
Y2 = A-B;                              
% Y2 = A.-B ;         % 报错,无效运算符

(2)矩阵的乘法运算:C=A*B。矩阵的乘法有下述特性:

        ①矩阵A 的列数与矩阵B的行数相同;

        ②矩阵C的行数等于矩阵A的行数,矩阵C的列数等于矩阵B的列数;

        ③矩阵第m行n列的元素值等于矩阵A第m行元素和矩阵B第n列元素对应值乘积的求和;

        ④AB≠BA。

Y3 = A*C;             % 必须满足:A的列数 = B的行数  ,生成的序列为 A行B列

(3)矩阵的点乘运算:将两矩阵相同位置的元素相乘后保留在原位置组成新矩阵。需要满足两个矩阵大小一致。

Y4 = A.*B;            % 大小一致,对应位置的元素相乘运算

(4)矩阵的左除运算:A\B,需要A与B的行数一致;

         矩阵的右除运算:A/B,需要A与B的列数一致;

         矩阵的点除与点乘类似。

Y5 = A\B ;            % A和B行数要一致               
Y6 = A.\B;            % 大小一致,对应位置的元素左除运算                     
Y7 = A/B;             % A和B列数要一致                            
Y8 = A./B;            % 大小一致,对应位置的元素右除运算

(5)矩阵的秩:

当矩阵X有 |X| ≠ 0时,X为非奇异矩阵,即X是可逆的,Y = inv(X)存在,且有XY=E。

Y9 = inv(A);           % 矩阵的逆,必须为方阵

2、矩阵元素的修改

(1)矩阵的扩充

D = [A;B];    % 使用矩阵B扩充矩阵A

(2)矩阵的删减

A(2,:)=[];    % 删除A的第二行
A(:,2)=[];    % 删除A的第二列

(3)对矩阵元素进行赋值

A(2,3)=2;   % 给A的第二行第三列元素赋值为2
A(2,:)=[1 2 3];    % 对A的第二行赋值
A(:,2)=[1 2 3];   % 对A的第二列赋值

3、矩阵的变维

        矩阵的变维可以通过用符号“:”和reshape()函数法进行修改,两种方法都要保证改变后矩阵元素数目和原矩阵一致。

(1)reshape(X,m,n):将已知矩阵X变维成m行n列的矩阵。

E = reshape(B,2,6);

(2)通过符号“:”对矩阵进行维度修改。

F = zeros(4,3);     % 必须先设定矩阵的形状
F(:) = B(:);         % 将 B 的维度改编成和 D 一样

4、矩阵的变向

(1)rot90(A):将矩阵A逆时针方向旋转90°;

         rot90(A,k):将矩阵A逆时针方向旋转90°,旋转 k 次。

G = rot90(A,2);     % rot90 将矩阵逆时针旋转90° ;    2 表示旋转次数

(2)fliplr(X):将矩阵X左右翻转;

         flipud(X):将矩阵X上下翻转;

         flipdim(X,dim):dim=1时对行进行翻转;dim=2时对列进行翻转。

H = flip(B,1);    % flip和flipdim作用一样,有些版本会对flipdim警告但不影响运行

5、矩阵的抽取

(1)diag(X):抽取矩阵X的主对角线上的元素向量;

         diag(X,k):抽取矩阵X的第k条对角线上的元素向量。其中k=0为主对角线,k为正整数则为上方第k条,k为负整数则为下方第k条。

J = diag(A,1);

(2)tril(X):提取X矩阵的主下三角部分;

         tril(X,k):提取X矩阵第k条对角线下方的部分,包括第k条;

         triu(X)和triu(X,k)使用方法与tril相同。

K = tril(magic);

你可能感兴趣的:(matlab,矩阵)