MATLAB邏輯運(yùn)算

2018-08-11 10:26 更新

MATLAB邏輯運(yùn)算都是針對元素的操作,運(yùn)算結(jié)果是特殊的邏輯數(shù)組;在邏輯分析時(shí),邏輯(真)用1表示,邏輯假用0表示,邏輯運(yùn)算中所有的非零元素作為1處理。

注意:

使用MATLAB邏輯運(yùn)算時(shí)的語法不要與C語言、Java等編程語言混淆。

MATLAB 有兩種類型的邏輯運(yùn)算符和函數(shù):

  • Element-wise - 這些運(yùn)算上的對應(yīng)元素的邏輯陣列。
  • Short-circuit - 這些運(yùn)算上的標(biāo)量,邏輯表達(dá)式。

MATLAB元素明智的邏輯運(yùn)算符操作元素元素邏輯陣列:符號&,|和?邏輯數(shù)組運(yùn)算符AND,OR,NOT。

MATLAB允許短路的短路邏輯運(yùn)算符,邏輯運(yùn)算:符號&&和| |是短路邏輯符AND和OR。

詳細(xì)例子


在MATLAB中建立一個(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

運(yùn)行該文件,產(chǎn)生如下結(jié)果:

Line 1 - Condition is true
Line 2 - Condition is true
Line 3 - Condition is not true
Line 4 - Condition is true

MATLAB邏輯運(yùn)算功能


除了在上述的邏輯運(yùn)算符,MATLAB 提供下面的命令或函數(shù)用于同樣的目的:

函數(shù)描述
and(A, B)查找數(shù)組或標(biāo)量輸入的邏輯和;執(zhí)行所有輸入數(shù)組A,B等的邏輯AND,并返回包含設(shè)置為邏輯1(真)或邏輯0(假)的元素的數(shù)組。如果所有輸入數(shù)組在同一個(gè)數(shù)組位置都包含一個(gè)非零元素,那么輸出數(shù)組的一個(gè)元素將被設(shè)置為1;否則,該元素設(shè)置為0。
not(A)查找數(shù)組或標(biāo)量輸入的邏輯NOT;執(zhí)行輸入數(shù)組A的邏輯NOT,并返回包含設(shè)置為邏輯1(真)或邏輯0(假)的元素的數(shù)組。如果輸入數(shù)組在同一個(gè)數(shù)組位置包含一個(gè)零值元素,那么輸出數(shù)組的一個(gè)元素將被設(shè)置為1;否則,該元素設(shè)置為0。
or(A, B)查找數(shù)組或標(biāo)量輸入的邏輯或; 執(zhí)行所有輸入數(shù)組A,B等的邏輯或,并返回包含設(shè)置為邏輯1(真)或邏輯0(假)的元素的數(shù)組。如果任何輸入數(shù)組在同一個(gè)數(shù)組位置包含一個(gè)非零元素,則輸出數(shù)組的一個(gè)元素設(shè)置為1;否則,該元素設(shè)置為0。
xor(A, B)邏輯異或; 對數(shù)組A和B的相應(yīng)元素執(zhí)行異或運(yùn)算。如果A(i,j,...)或B(i,j)...,則所得到的元素C(i,j,...) j,...),但不是兩者都是非零的。
all(A)
確定數(shù)組A的所有數(shù)組元素是否為非零或真。
  • 如果A是向量,則如果所有元素都為非零,則所有(A)返回邏輯1(真),如果一個(gè)或多個(gè)元素為零,則返回邏輯0(假)。

  • 如果A是非空矩陣,則所有(A)將A的列視為向量,返回邏輯1和0的行向量。

  • 如果A是空的0x0矩陣,則全部(A)返回邏輯1(真)。

  • 如果A是一個(gè)多維數(shù)組,則所有(A)都沿著第一個(gè)非指定維度行事,并返回一個(gè)邏輯值數(shù)組。 該尺寸的尺寸減小到1,而所有其他尺寸的尺寸保持不變。這個(gè)維度的大小減少到1,而其他所有維度的尺寸保持不變。

all(A, dim)通過標(biāo)量dim沿著維數(shù)A的維度進(jìn)行測試。
any(A)
確定數(shù)組元素是否為非零;測試數(shù)組中不同維度的元素是否為非零數(shù)字,或是邏輯1(真)。 任何函數(shù)忽略NaN(不是數(shù)字)的條目。
  • 如果A是向量,任何(A)如果A的任何元素是非零數(shù)或邏輯1(真),則返回邏輯1(真),如果所有元素為零,則返回邏輯0(假)。

  • 如果A是非空矩陣,則任何(A)將A的列視為向量,返回邏輯1和0的行向量。

  • 如果A是一個(gè)空的0x0矩陣,任何(A)返回邏輯0(假)。

  • 如果A是一個(gè)多維數(shù)組,則任何(A)都沿著第一個(gè)非整數(shù)維進(jìn)行操作,并返回一個(gè)邏輯值數(shù)組。該維度的尺寸減小到1,而所有其他維度的尺寸保持不變。

any(A,dim)通過標(biāo)量dim沿著維數(shù)A的維度進(jìn)行測試。
false邏輯0(假)
false(n)是邏輯0的n×n矩陣
false(m, n)是邏輯0的一個(gè)m×n矩陣。
false(m, n, p, ...)是由邏輯0的逐列逐列數(shù)組。
false(size(A))是與數(shù)組A大小相同的邏輯零數(shù)組。
false(...,'like',p)是與邏輯陣列p相同的數(shù)據(jù)類型和稀疏性的邏輯零數(shù)組。
ind = find(X)查找非零元素的索引和值;定位數(shù)組X的所有非零元素,并返回向量中這些元素的線性索引。 如果X是行向量,則返回的向量是行向量; 否則返回列向量。如果X不包含非零元素或是空數(shù)組,則返回一個(gè)空數(shù)組。
ind = find(X, k)

ind = find(X, k, 'first')

最多返回與X的非零條目相對應(yīng)的前k個(gè)索引。k必須是正整數(shù),但它可以是任何數(shù)字?jǐn)?shù)據(jù)類型。
ind = find(X, k, 'last')最多返回與X的非零條目相對應(yīng)的最后k個(gè)索引。
[row,col] = find(X, ...)返回矩陣X中非零條目的行和列索引。使用稀疏矩陣時(shí),此語法特別有用。 如果X是N>2的N維數(shù)組,col包含列的線性索引。
[row,col,v] = find(X, ...)返回X中非零條目的列或行向量v,以及行和列索引。如果X是邏輯表達(dá)式,則v是邏輯數(shù)組。 輸出v包含通過評估表達(dá)式X獲得的邏輯數(shù)組的非零元素。
islogical(A)確定輸入是否為邏輯數(shù)組;如果A是邏輯數(shù)組,返回true,否則返回false。 如果A是從邏輯類派生的類的實(shí)例,它也返回true。
logical(A)將數(shù)值轉(zhuǎn)換為邏輯;返回一個(gè)可用于邏輯索引或邏輯測試的數(shù)組。
true邏輯1(真)
true(n)是一個(gè)n×n邏輯矩陣。
true(m, n)是一個(gè)mxn邏輯矩陣。
true(m, n, p, ...)是由邏輯1的逐列逐列數(shù)組。
true(size(A))是與數(shù)組A大小相同的邏輯數(shù)組。
true(...,'like', p)是與邏輯陣列p相同的數(shù)據(jù)類型和稀疏性的邏輯陣列。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號