MATLAB 逻辑运算

MATLAB 逻辑运算

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

  • 元素级逻辑运算符-这些运算符作用于逻辑数组的对应元素上。

  • 短路逻辑运算符-这些运算符作用于标量的逻辑表达式上。

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

短路逻辑运算符允许在逻辑操作中短路。符号&&||分别是逻辑短路运算符AND和OR。

示例

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

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还提供了以下命令或函数,用于相同的目的-

序号 函数及描述
1 and(A, B) 查找数组或标量输入的逻辑与;对所有输入数组A、B等执行逻辑与操作,并返回一个包含元素设置为逻辑1(true)或逻辑0(false)的数组。如果所有输入数组在同一位置含有非零元素,则输出数组中的元素设置为1。否则,该元素设置为0。
2 not(A) 查找数组或标量输入的逻辑非;对输入数组A执行逻辑非操作,并返回一个包含元素设置为逻辑1(true)或逻辑0(false)的数组。如果输入数组在同一位置含有零值元素,则输出数组中的元素设置为1。否则,该元素设置为0。
3 or(A, B) 找到数组或标量输入的逻辑或;对所有输入数组A、B等执行逻辑或操作,并返回一个包含元素为逻辑1(真)或逻辑0(假)的数组。如果任何输入数组在相同的数组位置上包含非零元素,则输出数组的一个元素设置为1。否则,该元素设置为0。
4 xor(A, B) 逻辑异或;对数组A和B的相应元素执行异或运算。结果元素C(i,j,…)的逻辑值为真(1),如果A(i,j,…)或B(i,j,…),但不是同时为非零。5 | all(A) 判断数组A的所有元素是否非零或真。
如果A是一个向量,则all(A)返回逻辑1(真),如果所有元素都非零,则返回逻辑0(假)如果一个或多个元素为零。
如果A是一个非空矩阵,all(A)将A的列视为向量,并返回一个由逻辑值1和0组成的行向量。
如果A是一个空的0×0矩阵,all(A)返回逻辑值1(真)。
如果A是一个多维数组,all(A)沿着第一个非单例维度操作,并返回一个逻辑值数组。在此维度上,大小减少为1,而其他维度的大小保持不变。
6 all(A, dim) 沿着由标量dim指定的A的维度进行测试。
7 any(A) 确定是否存在非零元素;检测数组沿着不同维度的元素中是否存在非零数或逻辑值1(真)。any函数忽略NaN(不是一个数字)的条目。
如果A是一个向量,any(A)返回逻辑值1(真),如果A的任何元素是非零数或逻辑值1(真),并且如果所有元素都是零,则返回逻辑值0(假)。
如果A是一个非空矩阵,any(A)将A的列视为向量,返回一个由逻辑值1和0组成的行向量。
如果A是一个空的0×0矩阵,any(A)返回逻辑值0(false)。
如果A是一个多维数组,any(A)沿着第一个非单例维度进行操作,并返回一个逻辑值数组。这个维度的大小减小为1,而所有其他维度的大小保持不变。
8 any(A,dim) 沿着A指定的维度进行测试,该维度由标量dim指定。
9 false 逻辑值0(false)
10 false(n) 是一个n×n的逻辑值全为0的矩阵
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 不包含非零元素或是一个空数组,则返回一个空数组。
16 ind = find(X, k) ind = find(X, k, ‘first’) 返回最多前k个对应于矩阵X非零元素的索引。k必须是正整数,但可以是任何数值数据类型。
17 ind = find(X, k, ‘last’) 返回最多后k个对应于矩阵X非零元素的索引。
18 [row,col] = find(X, …) 返回矩阵X中非零元素的行索引和列索引。当处理稀疏矩阵时,此语法特别有用。如果X是一个N维数组,其中N > 2,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的逻辑1矩阵。
24 true(m, n) 是一个m乘n的逻辑1矩阵。
25 true(m, n, p, …) 是一个m乘n乘p乘…的逻辑1数组。
26 true(size(A)) 是一个与数组A大小相同的逻辑1数组。
27 true(…,’like’, p) 是一个与逻辑数组p相同数据类型和稀疏性的逻辑1数组。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程