目录

Show 例子

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

  • 元素 - 这些运算符在逻辑数组的相应元素上运行。

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

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

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

例子 (Example)

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

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

当您运行该文件时,它会产生以下结果 -

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

逻辑运算的功能

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

Sr.No. 功能说明
1

and(A, B)

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

2

not(A)

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

3

or(A, B)

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

4

xor(A, B)

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

5

all(A)

确定数组A的所有数组元素是否为非零或true。

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

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

  • 如果A是空的0乘0矩阵,则所有(A)返回逻辑1(真)。

  • 如果A是多维数组,则所有(A)沿第一个非单例维度行动并返回逻辑值数组。 此尺寸的尺寸减小到1,而所有其他尺寸的尺寸保持不变。

6

all(A, dim)

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

7

any(A)

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

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

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

  • 如果A是空的0乘0矩阵,则任何(A)返回逻辑0(假)。

  • 如果A是多维数组,则任何(A)沿第一个非单例维度行动并返回逻辑值数组。 此尺寸的尺寸减小到1,而所有其他尺寸的尺寸保持不变。

8

any(A,dim)

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

9

false

逻辑0(假)

10

false(n)

是一个n×n的逻辑零矩阵

11

false(m, n)

是一个m-by-n逻辑零矩阵。

12

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

是一个逻辑零的m-by-by-p-by -...数组。

13

false(size(A))

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

14

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

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

15

ind = find(X)

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

16

ind = find(X, k)

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

最多返回对应于X的非零项的前k个索引.k必须是正整数,但它可以是任何数字数据类型。

17

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

最多返回对应于X的非零项的最后k个索引。

18

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

返回矩阵X中非零项的行索引和列索引。在使用稀疏矩阵时,此语法特别有用。 如果X是N> 2的N维数组,则col包含列的线性索引。

19

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

返回X中非零条目的列或行向量v,以及行和列索引。 如果X是逻辑表达式,则v是逻辑数组。 输出v包含通过计算表达式X获得的逻辑数组的非零元素。

20

islogical(A)

确定输入是否为逻辑数组; 如果A是逻辑数组,则返回true,否则返回false。 如果A是从逻辑类派生的类的实例,它也返回true。

21

logical(A)

将数值转换为逻辑; 返回一个可用于逻辑索引或逻辑测试的数组。

22

true

逻辑1(真)

23

true(n)

是一个n乘n的逻辑矩阵。

24

true(m, n)

是一个m-by-n逻辑矩阵。

25

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

是一个由逻辑单元组成的m-by-by-p-by -...数组。

26

true(size(A))

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

27

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

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

↑回到顶部↑
WIKI教程 @2018