当前位置:   article > 正文

matlab矩阵处理_橡皮鸭小队长

橡皮鸭小队长


一、特殊矩阵

通用性的特征矩阵

  • zeros函数:产生全0矩阵。

  • ones函数:产生全1矩阵。

  • eye函数:产生对角线为1的矩阵。当矩阵为方阵时,得到一个单位矩阵。

  • rand函数:产生(0,1)区间均匀分布的随机矩阵。

  • randn函数:产生均值为0,方差为1 的标准正态分布随机矩阵。
    zeros函数的调用格式
    zeros(m):产生m×m零矩阵。
    zeros(m,n):产生m×n零矩阵。
    zeros(size(A)):产生与矩阵A同样大小的零矩阵。

     >> A = zeros(2,3)
     
     A =
     
          0     0     0
          0     0     0
     
     >> zeros(size(reshape(A,3,2)))
     
     ans =
     
          0     0	
          0     0
          0     0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

例:首先产生5阶两位随机整数矩阵A,再产生均值为0.6、方差为0.1的5阶正态分布随机矩阵B,最后验证(A+B)I=IA+BI(I为单位矩阵)。

>> A = fix(10+(99-10+1)*rand(5));
>> B = 0.6+sqrt(0.1)*randn(5);
>> C = eye(5);
>> (A+B)*C == C*A+B*C

ans =

  5×5 logical 数组

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

*rand函数:产生(0,1)开区间均匀分布的随机数x。
fix(a+(b-a+1)x):产生[a,b]区间上分布均匀的随机整数。
randn函数:产生均值为0、方差为1的标准正态分布随机数x。
μ + σ x \mu + \sigma x μ+σx:得到均值为 μ \mu μ、方差为 σ 2 \sigma^2 σ2的随机数。

用于专门学科的特殊矩阵

  • 魔方矩阵——Magic Square

     >> M = magic(3)
     
     M =
     
          8     1     6
          3     5     7
          4     9     2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

n阶魔方矩阵由1,2,3,…… n 2 n^2 n2 n 2 n^2 n2个整数组成,且每行、每列以及主、副对角线上各n个元素之和都相等。
n阶魔方阵每行每列元素的和为 ( 1 + 2 + 3 + … … + n 2 ) / n = ( n + n 3 ) / 2 (1+2+3+……+n^2)/n=(n+n^3)/2 (1+2+3++n2)/n=(n+n3)/2
Matlab函数magic(n)产生一个特定的魔方阵。
例: 产生8阶魔方阵,求其每行每列元素的和。

>> M = magic(8);
>> sum(M(1,:))

ans =

   260

>> sum(M(:,1))

ans =

   260
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 范德蒙矩阵
    在Matlab中,函数vander(V)生成以向量V为基础的范德蒙矩阵。

      >> A = vander(1:5)
     
     A =
     
          1     1     1     1     1
         16     8     4     2     1
         81    27     9     3     1
        256    64    16     4     1
        625   125    25     5     1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 希尔伯特矩阵
    生成n阶希尔伯特矩阵的函数是hilb(n)。

     >> format rat%设置输出格式为有理数
     >> H=hilb(4)
     
     H =
     
            1              1/2            1/3            1/4     
            1/2            1/3            1/4            1/5     
            1/3            1/4            1/5            1/6     
            1/4            1/5            1/6            1/7   
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 伴随矩阵
    Matlab生成伴随矩阵的函数是compan§,其中p是一个多项式的系数向量,高次幂系数排在前,低次幂系数排在后。
    例如,生成多项式 x 3 − 2 x 2 − 5 x + 6 x^3-2x^2-5x+6 x32x25x+6的伴随矩阵。

     >> A = compan(p)
     
     A =
     
            2              5             -6       
            1              0              0       
            0              1              0   
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 帕斯卡矩阵
    例:生成5阶帕斯卡矩阵,验证它的逆矩阵的所有元素也为整数。

     >> format rat
     >> P = pascal(5)
     
     P =
     
            1              1              1              1              1       
            1              2              3              4              5       
            1              3              6             10            15       
            1              4             10             20           35       
            1              5             15             35           70       
        
     
     >> inv(P)
     
     ans =
     
            5            -10             10             -5              1     
          -10             30            -35             19             -4
           10            -35             46            -27            6
           -5             19            -27             17            -4
            1             -4              6             -4            1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

二、矩阵变换

对角阵

对角矩阵:只有对角线上有非零元素的矩阵。
数量矩阵:对角线上的元素相等的对角矩阵。
单位矩阵:对角线上的元素都为1的对角矩阵。

  1. 提取矩阵的对角线元素
    diag(A):提取矩阵A主对角线元素,产生一个列向量。
    diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量。

  2. 构造对角矩阵
    diag(V):以向量V为主对角线元素,产生对角矩阵。
    diag(V,k):以向量V为第k条对角线元素,产生对角矩阵。
    例:建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,……,第五行乘以5。

    >> A = [7,0,1,0,5;3,5,7,4,1;4,0,3,0,2;1,1,9,2,3;1,8,5,2,9]
    
    		A =
    
      1 至 4 列
    
           7              0              1              0       
           3              5              7              4       
           4              0              3              0       
           1              1              9              2       
           1              8              5              2       
    
      5 列
    
           5       
           1       
           2       
           3       
           9       
    
     >> D = diag(1:5);
     >> D*A
    
    ans =
    
      1 至 4 列
    
           7              0              1              0       
           6             10             14              8       
          12              0              9              0       
           4              4             36              8       
           5             40             25             10       
    
      5 列
    
           5       
           2       
           6       
          12       
          45   
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

三角阵

上三角阵:矩阵的对角线以下的元素全为0的矩阵。
下三角矩阵:对角线以上的元素全为0的矩阵。

  1. 上三角矩阵
    triu(A):提取矩阵A的主对角线及以上的元素。
    triu(A,k):提取矩阵A的第k条对角线及以上的元素。

     >> triu(ones(4),-1)
    
    ans =
    
         1     1     1     1
         1     1     1     1
         0     1     1     1
         0     0     1     1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  2. 下三角矩阵
    提取函数为tril,用法与tiru相同。

矩阵的转置

转置运算符为小数点后接单引号(.’)。
共轭转置,运算符为单引号(’),在转置的基础上取每个数的复共轭。
实矩阵的转置与共轭转置结果一样。

>> A = [1,3;3+4i,1-2i]

A =

   1.0000 + 0.0000i   3.0000 + 0.0000i
   3.0000 + 4.0000i   1.0000 - 2.0000i

>> A.'

ans =

   1.0000 + 0.0000i   3.0000 + 4.0000i
   3.0000 + 0.0000i   1.0000 - 2.0000i

>> A'

ans =

   1.0000 + 0.0000i   3.0000 - 4.0000i
   3.0000 + 0.0000i   1.0000 + 2.0000i
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

矩阵的旋转

rot90(A,k):将矩阵A逆时针方向旋转 90 ° 90\degree 90°的k倍,当k为1时可省略。

>> A = [1,3,2;-3,2,1;4,1,2]

A =

     1     3     2
    -3     2     1
     4     1     2

>> rot90(A)

ans =

     2     1     2
     3     2     1
     1    -3     4

>> rot90(A,2)

ans =

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

矩阵的翻转

fliplr(A):对矩阵A实施左右翻转。
flipud(A):对矩阵A实施上下翻转。
例:验证魔方阵主对角线、副对角线元素之和相等。

A = magic(5);
D1 = diag(A);%提取A的主对角线元素
sum(D1)

ans =

65
  • 1

B = flipud(A);
D2 = diag(B);
sum(D2)

ans =

65
  • 1

矩阵的求逆

对于一个方阵A,如果存在一个与其同阶的方阵B,使得AB=BA=I(I为单位矩阵),则称B与A互为逆矩阵。
inv(A):求方阵A的逆矩阵。
例:用求逆矩阵的方法解线性方程组。
{ x + 2 y + 3 z = 5 x + 4 y + 9 z = − 2 x + 8 y + 27 z = 6

{x+2y+3z=5x+4y+9z=2x+8y+27z=6
x+2y+3z=5x+4y+9z=2x+8y+27z=6
在线性方程组 A x = b Ax=b Ax=b两边各左乘 A − 1 A^{-1} A1,有 A − 1 A x = A − 1 b A^{-1}Ax=A^{-1}b A1Ax=A1b,由于 A

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/579386
推荐阅读
相关标签
  

闽ICP备14008679号