MATLAB 入門之數值陣列的子陣列
阿新 • • 發佈:2019-02-03
一 寫在前面:
對於一個數組,我們可以利用 “陣列(標量)”或“陣列(行標,縱標)”的形式來對一個數組進行單個元素的引用。而實際上,我們還可以一次性引用陣列的多個元素,這即被稱之為” 陣列的子陣列”。
注:以下均取
>> 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)總結:
- 陣列 A(B) 的行列數均與B一樣;
- 陣列A(B)中的每個元素是以B中相應位置元素作為索引在A中的元素,如
- 第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所有可能性:
- B,C均為向量;
- B,C其中一個是向量一個是陣列;
- 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讀取陣列元素是按列優先的
- A(B,C)的元素個數:B的元素個數×C元素個數;
- 子陣列 A(B,C) 行數等於B中元素數,列數等於C中元素數;
- B,C決定 該子陣列元素的方式:
- 如上例子:
- B決定了:子陣列A(B,C)的第1,2,3,4行的元素分別在A中的 第2,3,1,2行中找;
- 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的一大特色,這使得在很多情況下,我們不必用迴圈語句來達到引用,處理陣列中多個元素的目的。大大方便了我們對陣列中的多個元素進行賦值,修改元素值。