文档

使用关系操作符进行数组比较

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

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

象征 函数等价 描述
< lt

不到

<=

小于或等于

> gt

大于

>= 通用电气

大于或等于

= = 情商

等于

~ =

不等于

数组的比较

数字数组

关系运算符在两个数组之间执行逐元素比较。数组必须具有兼容的大小以方便操作。具有兼容大小的数组在计算执行期间隐式地扩展为相同的大小。在最简单的情况下,两个操作数是大小相同的数组,或者其中一个是标量。有关更多信息,请参见基本操作的兼容数组大小

例如,如果比较两个大小相同的矩阵,那么结果是一个大小相同的逻辑矩阵,其中包含指示关系在何处为真的元素。

A = [2 4 6];[10]
A = 2 4 6 8 10 12
B = [5];[9]
B = 5 5 5 9 9 9
A < b
Ans = 1 1 0 1 0 0

类似地,您可以将其中一个数组与标量进行比较。

A bbbb7
Ans = 0 0 0 1 1 1

如果你比较1——- - - - - -N行向量到an——- - - - - -1列向量,然后MATLAB将每个向量展开成——- - - - - -N矩阵,然后再执行比较。生成的矩阵包含向量中每个元素组合的比较结果。

A = 1:3
A = 1 2 3
B = [2];3]
B = 2
A >= b
Ans = 0 1 1 0 0 1

空数组

只要两个数组具有兼容的大小,关系运算符就可以处理任意维度大小为0的数组。这意味着,如果一个数组的维度大小为零,那么另一个数组中相应维度的大小必须为1或零,并且该维度在输出中的大小为零。

A = ones(3,0);B = ones(3,1);A == b
ans =空矩阵:3 × 0

然而,像

A == []

返回一个错误一个不是0 × 0或者1 × 1。此行为与所有其他二进制操作符一致,例如+-><|等等。

要测试空数组,请使用isempty ()

复数

  • 运营商><>=,<=在执行比较时,只使用操作数的实部。

  • 运营商= =~ =测试操作数的实部和虚部。

NaT,以及未定义的元素比较

  • 值是相等的值。

  • 值不等于任何其他数值,包括other值。

  • NaTvalue不等于任何其他日期时间值,包括otherNaT值。

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

逻辑语句

将关系运算符与逻辑运算符结合使用A & b(和)A b|0 b(或),xor (A, B)(XOR),~一个(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

有关更多示例,请参见查找满足条件的数组元素

另请参阅

|||||

相关的话题

这个话题有帮助吗?