📜  如何在 MATLAB 中的 If 语句中使用逻辑运算符?

📅  最后修改于: 2022-05-13 01:54:20.684000             🧑  作者: Mango

如何在 MATLAB 中的 If 语句中使用逻辑运算符?

逻辑运算符用于组合两个或多个条件/约束或补充考虑的原始条件的评估。逻辑运算符是一个布尔值,真或假。与任何其他编程语言一样,MATLAB 中的逻辑运算符是有益的,在本文中,我们将演示它的一种用法。

MATLAB 逻辑运算符和函数:

  • 逐元素:这些运算符对逻辑数组的相应因子函数。逐元素的逻辑运算符的函数上的逻辑阵列细节逐细节。符号 &、| 和 ~ 是逻辑数组运算符AND、OR 和 NOT。
  • 短路:这些运算符对标量逻辑表达式函数。短路逻辑运算符允许对逻辑运算进行短路。符号 && 和 ||是逻辑短路运算符AND 和 OR。

但是在我们学习如何在条件语句中使用逻辑运算符之前,我们应该快速了解一下逻辑运算符。

  • 逻辑 AND(&):如果两个操作数都为真,则为真。
Operand1Operand2Operand1 & Operand2
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse
  • 逻辑 OR(|):如果任一操作数为真,则为真。
Operand1Operand2Operand1 | Operand2
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse
  • 逻辑异或(xor):如果两位不同,则异或的结果为真。
Operand1Operand2Operand1 xor Operand2
TrueTrueFalse
FalseTrueTrue
TrueFalseTrue
FalseFalseFalse
  • 逻辑 NOT( ~ ):如果操作数为假,则为真。
Operand~Operand
TrueFalse
FalseTrue

现在,这是一个 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。