Main Content

使用关系运算符进行数组比较

关系运算符使用“小于”、“大于”和“不等于”等运算符对操作数进行定量比较。关系比较的结果是一个逻辑数组,指示关系为 true 的位置。

这些是 MATLAB® 中的关系运算符。

符号等效函数描述
<lt

小于

<=le

小于或等于

>gt

大于

>=ge

大于或等于

==eq

等于

~=ne

不等于

数组比较

数值数组

关系运算符会在两个数组之间执行按元素比较。数组的大小必须兼容以便于执行运算。执行计算时,具有兼容大小的数组会隐式扩展为相同的大小。以最简单的情况为例,两个操作数为大小相同的数组,或者其中一个操作数为标量。有关详细信息,请参阅基本运算的兼容数组大小

例如,如果您比较两个大小相同的矩阵,则结果将是大小相同且其元素指示关系为 true 的位置的逻辑矩阵。

A = [2 4 6; 8 10 12]
A =

     2     4     6
     8    10    12
B = [5 5 5; 9 9 9]
B =

     5     5     5
     9     9     9
A < B
ans =

     1     1     0
     1     0     0

同样,您也可以将某一个数组与标量进行比较。

A > 7
ans =

     0     0     0
     1     1     1

如果您将一个 1×N 行向量与一个 M×1 列向量进行比较,则 MATLAB 会在执行比较之前将每个向量都扩展为一个 M×N 矩阵。生成的矩阵包含这些向量中元素的每个组合的比较结果。

A = 1:3
A =

     1     2     3
B = [2; 3]
B =

     2
     3
A >= B
ans =

     0     1     1
     0     0     1

空数组

关系运算符可用于其中有任一维度大小为零的数组,只要两个数组的大小兼容。这意味着,如果一个数组的维度大小为 0,则另一个数组中对应维度的大小必须为 1 或 0,并且输出中该维度的大小为 0。

A = ones(3,0);
B = ones(3,1);
A == B
ans =

   Empty matrix: 3-by-0

但是,类似下面的表达式

A == []

A 不是 0×0 或 1×1 矩阵时将返回错误。此行为与所有其他二元运算符(例如 +-><&| 等)的行为一致。

要验证数组是否为空数组,请使用 isempty(A)

复数

  • 运算符 ><>=<= 在执行比较时仅使用操作数的实部。

  • 运算符 ==~= 会同时检验操作数的实部和虚部。

InfNaNNaT 和 undefined 元素比较

  • Inf 值与其他 Inf 值相等。

  • NaN 值与任何其他数值(包括其他 NaN 值)都不相等。

  • NaT 值与任何其他日期时间值(包括其他 NaT 值)都不相等。

  • 未定义的分类元素不等于任何其他分类值,包括其他未定义的元素。

逻辑语句

将关系运算符与逻辑运算符 A & B (AND)、A | B (OR)、xor(A,B) (XOR) 和 ~A (NOT) 结合使用可以构建更为复杂的逻辑语句。

例如,您可以找到负数元素出现在两个数组中的位置。

A = [2 -1; -3 10]
A =

     2    -1
    -3    10
B = [0 -2; -3 -1]
B =

     0    -2
    -3    -1
A<0 & B<0
ans =

     0     1
     1     0

有关更多示例,请参阅查找符合条件的数组元素

另请参阅

| | | | |

相关主题