如何在 MATLAB 中的 If 语句中使用逻辑运算符?
逻辑运算符用于组合两个或多个条件/约束或补充考虑的原始条件的评估。逻辑运算符是一个布尔值,真或假。与任何其他编程语言一样,MATLAB 中的逻辑运算符是有益的,在本文中,我们将演示它的一种用法。
MATLAB 逻辑运算符和函数:
- 逐元素:这些运算符对逻辑数组的相应因子函数。逐元素的逻辑运算符的函数上的逻辑阵列细节逐细节。符号 &、| 和 ~ 是逻辑数组运算符AND、OR 和 NOT。
- 短路:这些运算符对标量逻辑表达式函数。短路逻辑运算符允许对逻辑运算进行短路。符号 && 和 ||是逻辑短路运算符AND 和 OR。
但是在我们学习如何在条件语句中使用逻辑运算符之前,我们应该快速了解一下逻辑运算符。
- 逻辑 AND(&):如果两个操作数都为真,则为真。
Operand1 | Operand2 | Operand1 & Operand2 |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
- 逻辑 OR(|):如果任一操作数为真,则为真。
Operand1 | Operand2 | Operand1 | Operand2 |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
- 逻辑异或(xor):如果两位不同,则异或的结果为真。
Operand1 | Operand2 | Operand1 xor Operand2 |
True | True | False |
False | True | True |
True | False | True |
False | False | False |
- 逻辑 NOT( ~ ):如果操作数为假,则为真。
Operand | ~Operand |
True | False |
False | True |
现在,这是一个 MATLAB 示例,它说明了带有条件语句的逻辑运算符。
示例 1:
Matlab
% MATLAB code for Logicl Operators
% in use, 1 - True, 0 - False
% logical and operator
andResult = 1 & 0;
% logical or operator
orResult = 1 | 0;
% logical xor operator
xorResult = xor(1,0);
% logical not operator
notResult = ~1;
% logical all()
allResult = all([1 2 3 4 5]);
% logical()
logicalResult = logical(76);
% islogical()
isLogicalResult = islogical([true false true]);
% logical find()
findResult = find([1 2 0 0 0 3 4 2]);
% logical any()
anyResult = any([1 0 2 3]);
disp("1 & 0 = " + andResult);
disp("1 | 0 = " + orResult);
disp("1 XOR 0 = " + xorResult);
disp("~1 = " + notResult);
disp("all([1 2 3 4 5]) = " + allResult);
disp("logical(87) = " + logicalResult);
disp("isLogical([true false true]) = " + isLogicalResult);
disp("find([1 2 0 0 0 3 4 2])");
findResult
disp("any([1 0 2 3]) = " + anyResult);
Matlab
% MATLAB script is used to determine
% the nature of the product (positive,
% negative or zero) of the the two
% numbers given by the user
num1 = input('Enter the first number:- ');
num2 = input('Enter the second number:- ');
% here we are using && instead of & and ||
% instead of | because it makes the code
% execution faster as if the conditon fails
% in the first operand the second operand is not tested
% If the both the numbers are greater that
% zero or both the numbers are less than zero
% their product will be positive
if((num1 > 0 && num2 > 0) || (num1 < 0 && num2 < 0))
disp('The product of the two numbers will be positive');
% If the numbers have opposite sign then
% their product will be negative
elseif((num1 > 0 && num2 < 0) || (num1 < 0 && num2 > 0))
disp('The product of the two numbers will be negative');
else
disp('The product of the two numbers will be zero');
end
输出:
所以现在我们对逻辑运算符有了初步的了解,我们可以在我们的条件语句中使用它们。现在我们将在条件语句中使用逻辑运算符。
示例 2:
MATLAB
% MATLAB script is used to determine
% the nature of the product (positive,
% negative or zero) of the the two
% numbers given by the user
num1 = input('Enter the first number:- ');
num2 = input('Enter the second number:- ');
% here we are using && instead of & and ||
% instead of | because it makes the code
% execution faster as if the conditon fails
% in the first operand the second operand is not tested
% If the both the numbers are greater that
% zero or both the numbers are less than zero
% their product will be positive
if((num1 > 0 && num2 > 0) || (num1 < 0 && num2 < 0))
disp('The product of the two numbers will be positive');
% If the numbers have opposite sign then
% their product will be negative
elseif((num1 > 0 && num2 < 0) || (num1 < 0 && num2 > 0))
disp('The product of the two numbers will be negative');
else
disp('The product of the two numbers will be zero');
end
输出:
上面的 MATLAB 脚本输出了用户给出的两个数字的乘积的性质,同时也说明了如何在条件语句(如 If 语句)中使用逻辑运算符,因此,在使用条件语句时,逻辑运算符很方便声明。
用于逻辑运算的 MATLAB 函数:
- all():确定所有数组元素是非零还是真。在此逻辑运算中,如果数组的所有元素都不为零,则输出将为 1(真),如果至少有一个元素为零,则输出将为 0(假)。
- logical():此函数将非零元素转换为 1,将零元素转换为 0。
- isLogical():在这个函数,如果输入是逻辑的,即真或假,那么输出将为 1,如果输入是逻辑之外的任何东西,那么输出将为 0。
- find():查找并返回数组中非零元素的索引。
- any():如果数组中的任何元素为非零,则输出为 1,否则输出为 0。