1. 程式人生 > 其它 >MATLAB 第二章 陣列運算及陣列化程式設計

MATLAB 第二章 陣列運算及陣列化程式設計

一、陣列的訪問與尋訪

1.建立一維陣列變數

法1:逐個元素輸入法

  • 所有的向量元素必須在操作符“[ ]”之內
  • 向量元素間用空格或逗號分開。
  • 輸入元素可以是整數、變數、算式或複數

建立陣列(行向量)a=[1 3 pi 3+5i]

a=[1 3 pi 3+5*i]	%or a=[1, 3, pi, 3+5*i]

a= 1.0000	3.0000	3.1416	3.0000 + 5.0000i

法2:使用冒號操作符

通過設定開始和結束元素,以及元素之間的間隔 ,三者之間用冒號分隔 x=Start:Increment:End
Start表示向量x的第一個元素;
向量x的所有元素不能大於End ;
Increment是元素之間的間隔,可正可負。若負,則必須Start>End;若正,則必 須Start<End,否則建立的為空向量。
若Increment=1,則可簡寫為:x=Start:End

法3:定數線性取樣法

x= linspace(x1, x2, n)
在設定的“總點數”下,均勻取樣生成一維由n個元素組成的行向量;
x1與x2之間元素的間隔=(x2-x1)/(n-1)。
如果忽略引數n,則系統預設生成100個元素的行向量。

列向量的建立

逐個元素輸入法,使用分號“;”分割行,行向量採用逗號或空格。

2.建立二維陣列變數

法1:逐個輸入

  • 所有的元素必須在操作符“[ ]”之內
  • 行與行之間須用分號“;” 間隔,也可以在分行處用回車鍵間隔;
  • 行內元素用空格或逗號“,”間隔。
  • 輸入元素可以是整數、變數、算式或複數

法2:函式方法

法3:變數編輯器

法4:M檔案

當陣列較大或者比較複雜時,將建立陣列的指令存入M檔案中,下次執行M檔案即可在記憶體中生成陣列。

3.陣列元素的編址

全下標編址

對於二維陣列來說,“全下標”標識由兩個下標組成:行下標,列下標。
指出是“第幾行,第幾列”的元素。

單下標編址

用一個下標來表明元素在陣列的位置。
一維編號:先把二維陣列的所有列,按先左後右的次序、首尾相接排成“一維長列”;然後,自上往下對元素位置進行編號。

轉換關係

以(m×n)的二維陣列A為例,若“全下標”元素位置是“第r行,第c列”,那麼相應的“單下標”為l=(c-1) ×m+r。
MATLAB有兩個指令可實現以上表示方法間的轉換:
sub2ind 根據全下標換算出單下標。
Ind2sub 根據單下標換算出全下標。

4.陣列元素的尋訪

法1:全下標尋訪


冒號表示所在行或列上的全部元素。

法2:單下標尋訪

採用單個“一維行或列陣列”尋訪元素。
首先將陣列生成一個一維陣列,然後進行尋訪。

法3:邏輯尋訪法

前兩種方法尋訪前都知道被尋訪元素的具體位置,然後採用全下標(單下標)方法根據元素下標來尋訪元素。
邏輯尋訪法則根據“條件”尋訪元素的位置,也稱為“邏輯1”尋訪。

二、陣列構建技法綜合

對已有陣列進行修改和擴充套件操作

三、陣列運算與矩陣運算



/:右除,A/B表示矩陣A乘以矩陣B的逆。
\:左除, A\B表示矩陣A的逆乘以B。
./:右除, A./B表示陣列A中的每個元素除以陣列B的對應的元素。
.\:左除, A.\B表示陣列B中的每個元素除以陣列A中對應的元素。

四、多維陣列與複數陣列

陣列的第一維稱為行,第二維稱為列,第三維稱為頁,第四維稱為箱…

建立方法

法1:直接通過全下標元素賦值方式建立多維陣列,按頁賦值

法2:函式法

由函式ones, zeros, rand, randn直接建立標準多維陣列;

常用指令

四、非數與空陣列

1.非數

按IEEE規定,0/0,∞/∞,0×∞等運算都會產生非數。該非數在MATLAB中用NaN或nan記述。

非數的性質

  1. NaN參與運算所得的結果也是NaN,即具有傳遞性
  2. 非數沒有大小概念,因此不能比較兩個非數的大小

非數的作用

  1. 真實記述0/0,∞/∞,0×∞運算的結果;
  2. 避免可能因0/0,∞/∞,0×∞運算而造成程式執行的中斷;
  3. 在資料視覺化中,用來裁剪圖形。

2.空陣列

“空”陣列是MATLAB為操作和表述需要而專門設計的一種陣列。
有一個維度是0的陣列即為空陣列
重要:空陣列不是全0陣列
空陣列不佔據儲存空間,但是他是存在的
“空”陣列的作用:
對於計算結果中的“空”可以合理地解釋“所得結果的含義”;
運用“空”陣列對其他非空陣列賦值,可以改變陣列的大小,但不能改變陣列的維數

不能使用“全下標”方式刪除單個元素

五、關係操作和邏輯操作

1.關係運算

Matlab提供了6種關係運算符:<、>、<=、>=、==、~=(不等於)

運演算法則



2.邏輯運算

Matlab提供了3種邏輯運算子:&(與)、|(或)、~(非)

運演算法則

邏輯運算子的運演算法則:
1、在邏輯運算中,認定非零元素為真(1),零元素為假(0)。
2、標量與陣列進行邏輯運算。運算比較在標量與陣列中的每個元素進行比較,運算結果與參與運算的陣列同維。
3、陣列之間進行邏輯運算。運算在兩陣列相同位置上的元素間進行,因此運算結果陣列必定和參與運算的陣列同維。
4、算術運算優先順序最高,邏輯運算優先順序最低。