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
MATLAB

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

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

逻辑运算的函数

除了上述提到的逻辑运算符之外,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教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册