2.3.2 矩阵元素的表示及相关操作
弄清了矩阵元素的存储次序,现在来讨论矩阵元素的表示方法和应用。在MATLAB中,矩阵除了以矩阵名为单位整体被引用外,还可能涉及对矩阵元素的引用操作,所以矩阵元素的表示也是一个必须交待的问题。
1.元素的下标表示法
矩阵元素的表示采用下标法。在MATLAB中有全下标方式和单下标方式两种方案,现分述如下:
(1)全下标方式:用行下标和列下标来标示矩阵中的一个元素,这是一个被普遍接受和采用的方法。对一个m×n阶的矩阵A,其第i行、第j列的元素用全下标方式就表示成A(i, j)。
(2)单下标方式:将矩阵元素按存储次序的先后用单个数码顺序地连续编号。仍以m×n阶的矩阵A为例,全下标元素A(i, j)对应的单下标表示便是A(s),其中s =(j-1)×m+i。
必须指出,i、j、s这些下标符号,不能只将其视为单数值下标,也可理解成用向量表示的一组下标,全面准确的理解请分析例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,不要求 A、B同阶,只要求元素个数相等。
【例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 = []