
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(真)或逻辑0(假)的元素的数组。如果所有输入数组在同一数组位置都包含非零元素,则将输出数组的元素设置为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的对应元素执行异或运算。如果A(i,j,...)或B(i, j,...),但不是两个都为非零。 |
| 5 | all(A) 确定数组A的所有数组元素是非零还是true。
|
| 6 | all(A, dim) 沿着标量dim指定的A维度进行测试。 |
| 7 | any(A) 确定是否有任何数组元素为非零;否则为0。测试数组各个维度上的任何元素是非零数字还是逻辑1(true)。any函数将忽略NaN(非数字)条目。
|
| 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') 最多返回与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(true) |
| 23 | true(n) 是逻辑矩阵的n×n矩阵。 |
| 24 | true(m, n) 是逻辑矩阵的n×n矩阵。 |
| 25 | true(m, n, p, ...) 是一个m×n×p×…逻辑数组的数组。 |
| 26 | true(size(A)) 是一个逻辑数组,其大小与数组A相同。 |
| 27 | true(...,'like', p) 是一个与逻辑数组p具有相同数据类型和稀疏性的逻辑数组。 |