MATLAB提供兩種類型的邏輯運(yùn)算符和函數(shù)-
按元素-這些運(yùn)算符對邏輯數(shù)組的相應(yīng)元素進(jìn)行操作。
短路-這些運(yùn)算符對標(biāo)量邏輯表達(dá)式進(jìn)行運(yùn)算。
逐個(gè)元素的邏輯運(yùn)算符在邏輯數(shù)組上逐個(gè)元素地進(jìn)行操作。符號&,|和?是邏輯數(shù)組運(yùn)算符AND,OR和NOT。
短路邏輯運(yùn)算符允許邏輯運(yùn)算短路。符號&&和|| 是邏輯短路運(yùn)算符AND和OR。
創(chuàng)建一個(gè)腳本文件并輸入以下代碼-
a = 5; b = 20; if ( a && b ) disp('Line 1 - Condition is true'); end if ( a || b ) disp('Line 2 - Condition is true'); end % lets change the value of a and b a = 0; b = 10; if ( a && b ) disp('Line 3 - Condition is true'); else disp('Line 3 - Condition is not true'); end if (~(a && b)) disp('Line 4 - Condition is true'); end當(dāng)您運(yùn)行文件時(shí),它會(huì)產(chǎn)生以下結(jié)果-
Line 1 - Condition is true Line 2 - Condition is true Line 3 - Condition is not true Line 4 - Condition is true
除了上述邏輯運(yùn)算符,MATLAB還提供了以下用于相同目的的命令或函數(shù)-
序號 | 功能說明 |
---|---|
1 | and(A, B) 查找數(shù)組或標(biāo)量輸入的邏輯與;對所有輸入數(shù)組A,B等執(zhí)行邏輯與,并返回包含設(shè)置為邏輯1(真)或邏輯0(假)的元素的數(shù)組。如果所有輸入數(shù)組在同一數(shù)組位置都包含非零元素,則將輸出數(shù)組的元素設(shè)置為1。否則,該元素設(shè)置為0。 |
2 | not(A) 查找數(shù)組或標(biāo)量輸入的邏輯非;對輸入數(shù)組A執(zhí)行邏輯非運(yùn)算,并返回包含設(shè)置為邏輯1(true)或邏輯0(false)的元素的數(shù)組。如果輸入數(shù)組在同一數(shù)組位置包含零值元素,則將輸出數(shù)組的元素設(shè)置為1。否則,該元素設(shè)置為0。 |
3 | or(A, B) 查找數(shù)組或標(biāo)量輸入的邏輯或;對所有輸入數(shù)組A,B等執(zhí)行邏輯或,并返回包含設(shè)置為邏輯1(真)或邏輯0(假)的元素的數(shù)組。如果任何輸入數(shù)組在同一數(shù)組位置包含非零元素,則將輸出數(shù)組的元素設(shè)置為1。否則,該元素設(shè)置為0。 |
4 | xor(A, B) 邏輯異或;對數(shù)組A和B的對應(yīng)元素執(zhí)行異或運(yùn)算。如果A(i,j,...)或B(i, j,...),但不是兩個(gè)都為非零。 |
5 | all(A) 確定數(shù)組A的所有數(shù)組元素是非零還是true。
|
6 | all(A, dim) 沿著標(biāo)量dim指定的A維度進(jìn)行測試。 |
7 | any(A) 確定是否有任何數(shù)組元素為非零;否則為0。測試數(shù)組各個(gè)維度上的任何元素是非零數(shù)字還是邏輯1(true)。any函數(shù)將忽略NaN(非數(shù)字)條目。
|
8 | any(A,dim) 沿著標(biāo)量dim指定的A維度進(jìn)行測試。 |
9 | false 邏輯0(false) |
10 | false(n) 是邏輯零的nbyn矩陣 |
11 | false(m, n) 是邏輯零的m×n矩陣。 |
12 | false(m, n, p, ...) 是一個(gè)邏輯零的m×n×p×...數(shù)組。 |
13 | false(size(A)) 是一個(gè)邏輯零數(shù)組,其大小與數(shù)組A相同。 |
14 | false(...,'like',p) 是與邏輯數(shù)組p相同數(shù)據(jù)類型和稀疏性的邏輯零數(shù)組。 |
15 | ind = find(X) 查找非零元素的索引和值;找到數(shù)組X的所有非零元素,并返回這些元素在向量中的線性索引。如果X是行向量,則返回的向量是行向量;否則,返回X。否則,返回列向量。如果X不包含非零元素或?yàn)榭諗?shù)組,則返回一個(gè)空數(shù)組。 |
16 | ind = find(X, k) ind = find(X, k, 'first') 最多返回與X的非零條目相對應(yīng)的前k個(gè)索引。k必須是一個(gè)正整數(shù),但可以是任何數(shù)字?jǐn)?shù)據(jù)類型。 |
17 | ind = find(X, k, 'last') 最多返回與X的非零條目相對應(yīng)的最后k個(gè)索引。 |
18 | [row,col] = find(X, ...) 返回矩陣X中非零條目的行索引和列索引。使用稀疏矩陣時(shí),此語法特別有用。如果X是N> 2的N維數(shù)組,則col包含列的線性索引。 |
19 | [row,col,v] = find(X, ...) 返回X中非零條目的列或行向量v以及行和列索引。如果X是邏輯表達(dá)式,則v是邏輯數(shù)組。輸出v包含通過對表達(dá)式X求值而獲得的邏輯數(shù)組的非零元素。 |
20 | islogical(A) 確定輸入是否為邏輯數(shù)組;如果A是邏輯數(shù)組,則返回true,否則返回false。如果A是從邏輯類派生的類的實(shí)例,則它也返回true。 |
21 | logical(A) 將數(shù)值轉(zhuǎn)換為邏輯值;返回一個(gè)可用于邏輯索引或邏輯測試的數(shù)組。 |
22 | true 邏輯1(true) |
23 | true(n) 是邏輯矩陣的n×n矩陣。 |
24 | true(m, n) 是邏輯矩陣的n×n矩陣。 |
25 | true(m, n, p, ...) 是一個(gè)m×n×p×…邏輯數(shù)組的數(shù)組。 |
26 | true(size(A)) 是一個(gè)邏輯數(shù)組,其大小與數(shù)組A相同。 |
27 | true(...,'like', p) 是一個(gè)與邏輯數(shù)組p具有相同數(shù)據(jù)類型和稀疏性的邏輯數(shù)組。 |