MATLAB 对矩阵的操作

1.常见矩阵函数运算

2.矩阵翻转

3.矩阵抽取

 

 

矩阵函数运算:

inv(A):对矩阵进行求逆

det(A):对矩阵求行列式

rank(A):求矩阵的秩

eig(A):求矩阵的特征值和特征向量

trace(A):求矩阵的迹,就是主对角元素之和

rref(A):把A化成约化阶梯型

svd(A):把矩阵进行奇异值分解

cond(A):求矩阵的条件数(啥是条件数,我不太清楚)

对矩阵的一些特殊操作:

对矩阵变维有两种方法:1.“:” ,主要针对两个矩阵进行变维,前提:两个矩阵事先定义好维数

 a=1:24

a =

  1 至 19 列

     1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16    17    18    19

  20 至 24 列

    20    21    22    23    24

>> c=ones(4,6)

c =

     1     1     1     1     1     1
     1     1     1     1     1     1
     1     1     1     1     1     1
     1     1     1     1     1     1

>> c(:)=a(:)

c =

     1     5     9    13    17    21
     2     6    10    14    18    22
     3     7    11    15    19    23
     4     8    12    16    20    24

2.reshape函数

 b=reshape(a,3,8)

b =

     1     4     7    10    13    16    19    22
     2     5     8    11    14    17    20    23
     3     6     9    12    15    18    21    24

 

 

矩阵翻转:

有rot90、fliplr、flipud和flipdim函数。

rot90(A):将A逆时针翻转90度。

rot90(A,K):将A逆时针翻转90*K度。

fliplr(A):将A左右翻转。

flipud(A):将A上下翻转。

flipdim(A,dim):将A绕dim维翻转,dim为1时表示行,为2时表示列。

b =

     1     4     7    10
     2     5     8    11
     3     6     9    12

>> rot90(b)

ans =

    10    11    12
     7     8     9
     4     5     6
     1     2     3

>> rot90(b,2)

ans =

    12     9     6     3
    11     8     5     2
    10     7     4     1

>> fliplr(b)

ans =

    10     7     4     1
    11     8     5     2
    12     9     6     3

>> flipud(b)

ans =

     3     6     9    12
     2     5     8    11
     1     4     7    10

>> flipdim(b,1)

ans =

     3     6     9    12
     2     5     8    11
     1     4     7    10

>> flipdim(b,2)

ans =

    10     7     4     1
    11     8     5     2
    12     9     6     3

 

常见的矩阵抽取函数:

有diag、tril、triu函数。

diag(X,k)表示抽取矩阵X的第k条对角线上元素构成向量。k为零时表示抽取主对角线上元素。

diag(V,k)表示生成一个n阶对角阵,矩阵第k条对角线上的元素为向量V。

tril(X,k)提取X的第k条对角线下面的部分,生成下三角矩阵。

triu(X,k)提取X的第k条对角线上面的部分,生成上三角矩阵。

b =

     1     5     9    13    17    21    25    29    33
     2     6    10    14    18    22    26    30    34
     3     7    11    15    19    23    27    31    35
     4     8    12    16    20    24    28    32    36

>> diag(b,2)

ans =

     9
    14
    19
    24

>> diag(b)

ans =

     1
     6
    11
    16

>> diag(b,1)

ans =

     5
    10
    15
    20

>> v=[1 1 1 1];
>> diag(v,2)

ans =

     0     0     1     0     0     0
     0     0     0     1     0     0
     0     0     0     0     1     0
     0     0     0     0     0     1
     0     0     0     0     0     0
     0     0     0     0     0     0

>> tril(b,1)

ans =

     1     5     0     0     0     0     0     0     0
     2     6    10     0     0     0     0     0     0
     3     7    11    15     0     0     0     0     0
     4     8    12    16    20     0     0     0     0

>> triu(b,2)

ans =

     0     0     9    13    17    21    25    29    33
     0     0     0    14    18    22    26    30    34
     0     0     0     0    19    23    27    31    35
     0     0     0     0     0    24    28    32    36

 

 

 

 

 

你可能感兴趣的:(maltab学习)