MATLAB 的關係運算元(Relational Operators)有下列六種:
關係運算元 說明 == 等於 ~= 不等於 < 小於 <= 小於或等於 > 大於 >= 大於或等於 MATLAB 的關係運算元總是以矩陣內元素對元素的方式作運算,例如:
由上例可知,若 a(i, j) > b(i, j),則 c(i, j) 的值為 1(表示「真」或「成立」),否則即為 0(表示「偽」或「不成立」)。MATLAB 的關係運算元亦支援純量展開,例如:
此外,我們可以將關係運算元傳回的 0-1 矩陣(元素值為 0 或 1)來進行矩陣的索引(Indexing),並進而找出滿足某條件的矩陣元素,例如,欲求出在 a 矩陣中,滿足 a(i, j) >= b(i, j) 的元素,可輸入如下:
在上例中,亦可直接使用 a(a >= b) 來求得答案。此外,在上例中,矩陣 C 是一個由邏輯運算(見下節)所產生的邏輯索引矩陣,因此可直接用於 a 的邏輯索引(Logic Indexing)。一般而言,若要進行邏輯索引,最好先將索引矩陣經過 logical 指令的處理,以免產生疑義。以上例而言,a([0,1;1,0]) 會產生錯誤訊息,正確寫法應該是 a(logical([0,1;1,0]))。
另一個常用來尋找矩陣元素的指令是 find,可傳回非零元素索引,例如:
在上例中,index 代表 x 的一維索引或下標,可詳見本書第九章「矩陣的處理和運算」的第一節「矩陣索引或下標」,而 x(index) 則是非零元素所形成的向量。若要找出滿足某條件的二維索引或下標,可輸入如下:
在上例中,idx1 和 idx2 分別是符合條件之矩陣元素的列索引(Row Index)及行索列(Column Index)。因此,若善於利用 find 指令,可以很快地找出符合某條件式的元素。例如:欲求出介於 7 和 11 的元素,可輸入如下:
其中 & 代表邏輯的 AND,將在下節介紹。
MATLAB程式設計:入門篇