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:逐個輸入

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

image

法2:函數方法

image

法3:變量編輯器

image

法4:M文件

當數組較大或者比較復雜時,將創建數組的指令存入M文件中,下次執行M文件即可在內存中生成數組。
image

3.數組元素的編址

全下標編址

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

單下標編址

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

轉換關系

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

4.數組元素的尋訪

法1:全下標尋訪

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

法2:單下標尋訪

采用單個“一維行或列數組”尋訪元素。
首先將數組生成一個一維數組,然后進行尋訪。
image
image

法3:邏輯尋訪法

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

二、數組構建技法綜合

對已有數組進行修改和擴展操作
image

三、數組運算與矩陣運算

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

四、多維數組與復數數組

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

創建方法

法1:直接通過全下標元素賦值方式創建多維數組,按頁賦值

image

法2:函數法

由函數ones, zeros, rand, randn直接創建標准多維數組;

常用指令

image

四、非數與空數組

1.非數

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

非數的性質

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

非數的作用

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

2.空數組

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

五、關系操作和邏輯操作

1.關系運算

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

運算法則

image
image
image

2.邏輯運算

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

運算法則

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM