1. 程式人生 > >MATLAB 入門之數值陣列的子陣列

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)=8A(2,3)=7A(2,1)=5A(2,2)=6
A(3,4)=12A(3,3)=11A(3,1)=9A(3,2)=10
A(1,4)=4A(1,3)=3A(1,1)=1A(1,2)=2
A(2,4)=8A(2,3)=7A(2,1)=5A(2,2)=6

(2).B,C中一個為陣列,一個為向量及均為向量的情況 

按向量為特殊陣列處理,依上類推,可得,這裡不多說。

三 最後小結

一次性引用陣列中的多個元素是MATLAB的一大特色,這使得在很多情況下,我們不必用迴圈語句來達到引用,處理陣列中多個元素的目的。大大方便了我們對陣列中的多個元素進行賦值,修改元素值。