Relational Operations
关系运算指关系运算符和关系运算函数作用于一对对象, 返回判断逻辑值的运算过程
~~ Relational operations 常常和 Matlab Logical Operations 组合形成复杂条件表达式
逐元素关系运算
| Operator | Equivalent Function |
|---|---|
| == | eq |
| ~= | ne |
| >= | ge |
| > | gt |
| ⇐ | le |
| < | le |
- 以上所有运算比较对象都是一般 arrays, 即不能是 cell 或 structure
- 完整支持数据类型列表: single, double, int8, int16, int32, int64, uint8, uint16, uint32, uint64, logical, char, string, categorical, datetime, duration
- 比较对象尺寸需 “相容”
- 如相同尺寸 arrays, 此时比较 index 相同元素, 返回相同尺寸 logical array
- 如一方是 scalar, 则与另一方中每个元素比较
- 对于字符, 按字典序比较
- 对于复数
- 前两种关系运算比较实部和虚部
- 后四种关系运算只比较实部
- 常数 Inf = Inf
- 常数 NaN 与任何数值, 包括 NaN 都不等
- 对于浮点数, 其存储形式决定了相对误差的存在, 故程序设计中最好不要直接比较两个浮点数是否相等, 而是采用后四种比较运算将待确定值限制在一个满足需要的区间之内
- 对于整数, 无论是 double 类, 整数类, 逻辑值, 字符(编码), 都可以按常规意义比较
整体关系运算
函数 iseuqal 和 isequaln 可以比较任意两个数据类型, 并且只返回一个逻辑值, 判断比较对象是否完全相同
- “完全相同” 的定义见 Matlab Functions - isequal
- isequaln 与 iseuqal 的唯一区别在于 NaN 等不定元素视为与自身相等