English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MATLAB 逻辑运算

Matlab-Operator

MATLAB提供两种类型的逻辑运算符和函数-

  • 按元素-这些运算符对逻辑数组的相应元素进行操作。

  • 短路-这些运算符对标量逻辑表达式进行运算。

逐个元素的逻辑运算符在逻辑数组上逐个元素地进行操作。符号&,|和〜是逻辑数组运算符AND,OR和NOT。

短路逻辑运算符允许逻辑运算短路。符号&&和|| 是逻辑短路运算符AND和OR。

在线示例

创建一个脚本文件并输入以下代码-

a = 5;
b = 0; 20;
   if ( a && b )
      disp('行 1 - 条件为真');
   结束
   if ( a || b )
      disp('行 2 - 条件为真');
   结束
   
   % lets change the value of  a and b 
   a = 0;
   b = 0; 10;
   
   if ( a && b )
      disp('行 3 - 条件为真');
   else
      disp('行 3 - 条件不为真');
   结束
   
   if (~(a && b))
   
      disp('行 4 - 条件为真');
   结束
当您运行文件时,它会产生以下结果-
行 1 - 条件为真
行 2 - 条件为真
行 3 - 条件不为真
行 4 - 条件为真

逻辑运算函数

除了上述逻辑运算符,MATLAB还提供了以下用于相同目的的命令或函数-

序号功能说明
1

and(A, B)

查找数组或标量输入的逻辑与;对所有输入数组A,B等执行逻辑与,并返回包含设置为逻辑1(真)或逻辑0(假)的元素的数组。如果所有输入数组在同一数组位置都包含非零元素,则将输出数组的元素设置为1。否则,该元素设置为0。

2

not(A)

查找数组或标量输入的逻辑非;对输入数组A执行逻辑非运算,并返回包含设置为逻辑1(真)或逻辑0(假)的元素的数组。如果输入数组在同一数组位置包含零值元素,则将输出数组的元素设置为1。否则,该元素设置为0。

3

or(A, B)

查找数组或标量输入的逻辑或;对所有输入数组A,B等执行逻辑或,并返回包含设置为逻辑1(真)或逻辑0(假)的元素的数组。如果任何输入数组在同一数组位置包含非零元素,则将输出数组的元素设置为1。否则,该元素设置为0。

4

xor(A, B)

逻辑异或;对数组A和B的对应元素执行异或运算。如果A(i,j,...)或B(i, j,...),但不是两个都为非零。

5

all(A)

确定数组A的所有数组元素是非零还是true。

  • 如果A是向量,all(A)则如果所有元素都不为零,则返回逻辑1(真),如果一个或多个元素为零,则返回逻辑0(假)。

  • 如果A为非空矩阵,则将Aall(A)的列视为向量,并返回逻辑1和0的行向量。

  • 如果A是一个空的0×0矩阵,则all(A)返回逻辑1(真)。

  • 如果A是一个多维数组,则all(A)沿第一个非单维度执行操作并返回逻辑值数组。该尺寸的大小减小为1,而所有其他尺寸的大小保持不变。

6

all(A, dim)

沿着标量dim指定的A维度进行测试。

7

any(A)

确定是否有任何数组元素为非零;否则为0。测试数组各个维度上的任何元素是非零数字还是逻辑1(true)。any函数将忽略NaN(非数字)条目。

  • 如果A是向量,则如果A的any(A)任何元素为非零数或为逻辑1(真),则返回逻辑1(真),如果所有元素均为零,则返回逻辑0(假)。

  • 如果A为非空矩阵,则将Aany(A)的列视为向量,并返回逻辑1和0的行向量。

  • 如果A是一个空的0×0矩阵,则any(A)返回逻辑0(假)。

  • 如果A是一个多维数组,则any(A)沿第一个非单维度执行操作并返回逻辑值数组。该尺寸的大小减小为1,而所有其他尺寸的大小保持不变。

8

any(A,dim)

沿着标量dim指定的A维度进行测试。

9

false

逻辑0(false)

10

false(n)

是逻辑零的nbyn矩阵

11

false(m, n)

是逻辑零的m×n矩阵。

12

false(m, n, p, ...)

是一个逻辑零的m×n×p×...数组。

13

false(size(A))

是一个逻辑零数组,其大小与数组A相同。

14

false(...,'like',p)

是与逻辑数组p相同数据类型和稀疏性的逻辑零数组。

15

ind  = find(X)

查找非零元素的索引和值;找到数组X的所有非零元素,并返回这些元素在向量中的线性索引。如果X是行向量,则返回的向量是行向量;否则,返回X。否则,返回列向量。如果X不包含非零元素或为空数组,则返回一个空数组。

16

ind = find(X, k)

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

最多返回与X的非零条目相对应的前k个索引。k必须是一个正整数,但可以是任何数字数据类型。

17

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

gibt die letzten k Indizes zurück, die mit den nicht-null Einträgen von X korrespondieren.

18

[row,col] = find(X, ...)

Gibt die Zeilen- und Spaltenindizes der nicht-null Einträge der Matrix X zurück. Diese Syntax ist besonders nützlich bei der Verwendung von dünnen Matrizen. Wenn X ein N> 2von einem N-Dimensionalen Array, dann enthält col die linearen Indizes der Spalten.

19

[row,col,v] = find(X, ...)

Gibt die Spalten- oder Zeilenvektoren v des X sowie die Zeilen- und Spaltenindizes zurück. Wenn X ein logisches Ausdruck ist, ist v ein logisches Array. Der Ausgang v enthält die nicht-null Elemente des logischen Arrays, das durch das Auswerten des Ausdrucks X erhalten wird.

20

islogical(A)

Bestimmt, ob der Eingang ein logischer Array ist; gibt true zurück, wenn A ein logischer Array ist, sonst false. Wenn A ein Instanz einer Klasse abgeleitet von der logischen Klasse ist, wird auch true zurückgegeben.

21

logical(A)

Konvertiert numerische Werte in logische Werte; gibt ein Array zurück, das für logische Indizes oder logische Tests verwendet werden kann.

22

true

logisch1(true)

23

true(n)

ist ein n×n-Matrix der logischen Matrizen.

24

true(m, n)

ist ein n×n-Matrix der logischen Matrizen.

25

true(m, n, p, ...)

ist ein Array aus m×n×p×… logischen Arrays.

26

true(size(A))

ist ein logischer Array, der die gleiche Größe wie das Array A hat.

27

true(...,'like', p)

ist ein logischer Array mit gleicher Datentypik und Dichte wie der logische Array p.

Matlab-Operator