MATLAB基础及其应用教程
上QQ阅读APP看书,第一时间看更新

2.3.2 矩阵元素的表示及相关操作

弄清了矩阵元素的存储次序,现在来讨论矩阵元素的表示方法和应用。在MATLAB中,矩阵除了以矩阵名为单位整体被引用外,还可能涉及对矩阵元素的引用操作,所以矩阵元素的表示也是一个必须交待的问题。

1.元素的下标表示法

矩阵元素的表示采用下标法。在MATLAB中有全下标方式和单下标方式两种方案,现分述如下:

(1)全下标方式:用行下标和列下标来标示矩阵中的一个元素,这是一个被普遍接受和采用的方法。对一个m×n阶的矩阵A,其第i行、第j列的元素用全下标方式就表示成Ai, j)。

(2)单下标方式:将矩阵元素按存储次序的先后用单个数码顺序地连续编号。仍以m×n阶的矩阵A为例,全下标元素Ai, j)对应的单下标表示便是As),其中s =(j-1)×m+i

必须指出,ijs这些下标符号,不能只将其视为单数值下标,也可理解成用向量表示的一组下标,全面准确的理解请分析例2.10及其运行后的结果。

【例2.10】 元素的下标表示。

        >>A=[1 2 3;6 5 4;8 7 9]
        A =
            1    2    3
            6    5    4
            8    7    9
        >>A(2,3), A(6)  %显示矩阵中全下标元素A(2,3)和单下标元素A(6)的值
        ans =
            4
        ans =
            7
        >>A(1:2,3)     %显示矩阵A第1、2两行的第3列的元素值
        ans =
            3
            4
        >>A(6:8)       %显示矩阵A单下标第6~8号元素的值,此处是用一向量表示一下标区间
        ans =
            7    3    4

2.矩阵元素的赋值

矩阵元素的赋值有3种方式:全下标方式、单下标方式和全元素方式。必须声明,用后两种方式赋值的矩阵必须是被引用过的矩阵,否则,系统会提示出错信息。

(1)全下标方式:在给矩阵的单个或多个元素赋值时,采用全下标方式接收。

【例2.11】 全下标接收元素赋值。

        >>clear                      %不要因工作空间中已有内容干扰了后面的运算
        >>A(1:2,1:3)=[1 1 1;1 1 1]  %可用一矩阵给矩阵A的1~2行1~3列的全部元素赋值为1
        A =
            1    1    1
            1    1    1
        >>A(3,3)=2                   %给原矩阵中并不存在的元素下标赋值会扩充矩阵阶数,注
                                      %意补0的原则
        A =
            1    1    1
            1    1    1
            0    0    2

(2)单下标方式:在给矩阵的单个或多个元素赋值时,采用单下标方式接收。

【例2.12】 单下标接收元素赋值(续例2.11)。

        >>A(3:6)=[-1 1 1-1]           %可用一向量给单下标表示的连续多个矩阵元素赋值
        A =
            1    1    1
            1    1    1
            -1   -1    2
        >> A(3)=0; A(6)=0               %用单下标对单一元素赋值
        A =
            1    1    1
            1    1    1
            0    0    2

(3)全元素方式:将矩阵 B 的所有元素全部赋值给矩阵 A,即 A(:)=B,不要求 AB同阶,只要求元素个数相等。

【例2.13】 全元素方式赋值。

        >> A(:)=1:9                    %将一向量按列之先后赋值给矩阵A, A在上例已被引用
        A =
            1    4    7
            2    5    8
            3    6    9
        >> A(3,4)=16, B=[11 12 13;14 15 16;17 18 19;0 0 0]
                                        %扩充矩阵A,生成4×3阶矩阵B
        A =
            1    4    7    0
            2    5    8    0
            3    6    9   16
        B =
            11   12   13
            14   15   16
            17   18   19
            0    0    0
        >> A(:)=B                      %将4×3阶矩阵B按列全部赋给3×4阶矩阵A
        A =
            11    0   18   16
            14   12    0   19
            17   15   13    0

3.矩阵元素的删除

在MATLAB中,可以用空矩阵(用[]表示)将矩阵中的单个元素、某行、某列、某矩阵子块及整个矩阵中的元素删除。

【例2.14】 删除元素操作。

        >>clear
        >>A(2:3,2:3)=[1 1;2 2]        %生成一新矩阵A
        A =
            0    0    0
            0    1    1
            0    2    2
        >> A(2, :)=[]                   %删除A矩阵的第2行,“:”可表示所有行或列
        A =
            0    0    0
            0    2    2
        >> A(1:2)=[]                   %删除新矩阵A的前两个单下标元素,矩阵变成向量
        A =
            0    2    0    2
        >> A=[]                        %删除所有元素
        A =
            []