数学实验教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 MATLAB中的矩阵及其运算

MATLAB中的很多运算都会涉及矩阵,因此需要对MATLAB 中关于矩阵的定义方式、特殊矩阵的生成、运算代码等有详细的了解。

首先,在输入矩阵时,注意用逗号或空格来区分同一行的不同数字,用分号来区分不同的行。一行输入完毕后,也可以按回车键来开始新的一行。

    >> a=[1 2 3 4; 5, 6, 7, 8]
    a=


        1    2    3    4
        5    6    7    8

需要注意的是,输入矩阵时,所有的行都必须有相同数量的元素。

    >>  b=[ 1  2  3  4
    5 6 7 8
    1,2,2,2]

    b=


          1     2     3     4
          5     6     7     8
          1     2     2     2

对于零矩阵、单位矩阵等一些特殊的矩阵,可以由MATLAB自动生成。比如生成m×n阶零矩阵可以使用命令A=eye(m, n)。

    >>  A=eye(2, 4)

    A=

        1       0       0       0
        0       1       0       0

生成m×n阶单位矩阵可以使用命令B=zeros(m, n)。

    >>  B=zeros(2, 4)

    B=

        0       0       0       0
        0       0       0       0

我们知道,矩阵就是数据表格,有时可能需要提取其中的部分数据,或者对数据表格进行切割、合并等操作,这些都可以借助一些MATLAB命令迅速生成相应的结果。提取矩阵中属于第i行到第j行、第m列到第n列的部分元素组成新的矩阵,可以用命令A(i: j, m: n)。

    A=

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

    >> A(1: 2, 2: 3)

    ans=

        0       0
        1       0

删去矩阵中的部分行,剩余元素构成新的矩阵可以用命令A(i: j, :)。删去部分列,剩余元素构成新的矩阵可以用命令A(:, m: n)。

    A=

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

    >> A(1: 2, :)

    ans=

        1     0     0     0     0
        0     1     0     0     0

    >>A(:, 2: 3)

    ans=
        0     0
        1     0
        0     1

AB两个矩阵合并为一个矩阵,可以用 [AB] 和 [A; B] 命令,前者表示A在左而B在右,后者表示A在上而B在下。

    >> A=[1, 2; 3, 4]; B=[1, 0; 0, 1];
    >> [ A B]

    ans=

      1     2     1     0
      3     4     0     1

    >> [ A; B]

    ans=

      1     2
      3     4
      1     0
      0     1

此外,线性代数课程中讲过的矩阵运算也可以很方便地实现。比如两个同型矩阵AB相加,可以用A+B命令,两个矩阵相乘可以用A∗B命令。常见的矩阵运算命令如表1-2所示。

表1-2

矩阵运算在科学与工程计算中很常见,在本书后续的线性代数部分会介绍更多的矩阵运算。