MATLAB 入门之数值数组的子数组

一 写在前面:

对于一个数组,我们可以利用 “数组(标量)”或“数组(行标,纵标)”的形式来对一个数组进行单个元素的引用。而实际上,我们还可以一次性引用数组的多个元素,这即被称之为” 数组的子数组”。

注:以下均取

     >> A=

                1     2     3     4
                5     6     7     8

                9    10    11    12


二 形如:A(B)和A(B,C)

1:A(B),其中A,B均为数组(这里,我们认为行向量,列向量也是特殊的数组)


则B有3种形式:


(1). B为行向量:

例子如下:

>>B=[3,2,5,1];
>>A(B)
ans =
     9  5   6   1

(2).B为列向量:

例子如下:

>>B=[3;2;5;1];
>>A(B)
ans =

     9 
     5
     6
     1

(3). B为普通数组

>>B=[3,2;5,1];
>>A(B)
ans =

     9    5
     6    1

(4)总结:

  1.           数组 A(B) 的行列数均与B一样;
  2.           数组A(B)中的每个元素是以B中相应位置元素作为索引在A中的元素,如
  3.           第3种情况  A(B)中1行,1列元素=A(B(1,1));依此类推:数组A(B)中的m行,n列元素=A(B(m,n));


2. A(B,C) 其中 A,B,C 均为数组


则B,C所有可能性:

  1.                          B,C均为向量;
  2.                          B,C其中一个是向量一个是数组;
  3.                          B,C均为数组。


(1) 以B,C均为数组这种情况为例:

>>B =

     2     1
     3     2



>>C =

     4     1
     3     2

>> A(B,C)

ans =

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

注意:MATLAB读取数组元素是按列优先的

  1.          A(B,C)的元素个数:B的元素个数×C元素个数;
  2.         子数组 A(B,C) 行数等于B中元素数,列数等于C中元素数;
  3.         B,C决定 该子数组元素的方式:
  4.         如上例子:
  5.                B决定了:子数组A(B,C)的第1,2,3,4行的元素分别在A中的 第2,3,1,2行中找;
  6.                C决定了:子数组A(B,C)的第1,2,3,4列的元素分别在A中的 第 4,3,1,2列中找

                                                 对 A(B,C)以表格形式画出:A(B,C)中各元素:

A(2,4)=8 A(2,3)=7 A(2,1)=5 A(2,2)=6
A(3,4)=12 A(3,3)=11 A(3,1)=9 A(3,2)=10
A(1,4)=4 A(1,3)=3 A(1,1)=1 A(1,2)=2
A(2,4)=8 A(2,3)=7 A(2,1)=5 A(2,2)=6


(2).B,C中一个为数组,一个为向量及均为向量的情况 

按向量为特殊数组处理,依上类推,可得,这里不多说。


三 最后小结

一次性引用数组中的多个元素是MATLAB的一大特色,这使得在很多情况下,我们不必用循环语句来达到引用,处理数组中多个元素的目的。大大方便了我们对数组中的多个元素进行赋值,修改元素值。




你可能感兴趣的:(MATLAB业余爱好者)