Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

eq, ==

确定相等性

说明

示例

当数组 AB 相等时,A == B 返回一个逻辑数组,其各元素设置为逻辑值 1 (true);否则,元素是逻辑值 0 (false)。测试将比较数值数组的实部和虚部。当 AB 含有 NaN 或未定义的 categorical 元素时,eq 返回逻辑值 0 (false)。

eq(A,B) 是执行 A == B 这一操作的替代方法,但很少使用。它可以启用类的运算符重载。

示例

全部折叠

创建两个均包含实数和虚数的向量,然后比较向量的相等性。

A = [1+i 3 2 4+i];
B = [1 3+i 2 4+i];
A == B
ans = 1x4 logical array

   0   0   1   1

eq 函数可测试实部和虚部是否相等,且仅当两个部分均相等时返回逻辑值 1 (true)。

创建字符向量。

M = 'masterpiece';

使用 == 测试是否有特定字符。

M == 'e'
ans = 1x11 logical array

   0   0   0   0   1   0   0   0   1   0   1

逻辑值 1 (true) 表示存在字符 'e'

创建一个分类数组,其中包含两个值 'heads''tails'

A = categorical({'heads' 'heads' 'tails'; 'tails' 'heads' 'tails'})
A = 2x3 categorical
     heads      heads      tails 
     tails      heads      tails 

查找 'heads' 类别中的所有值。

A == 'heads'
ans = 2x3 logical array

   1   1   0
   0   1   0

逻辑值 1 (true) 表示类别中的一个值。

比较 A 的各行是否相等。

A(1,:) == A(2,:)
ans = 1x3 logical array

   0   1   1

逻辑值 1 (true) 表示行拥有相等的类别值。

以十进制文本表示的多个数字不能精确地表示为二进制浮点数。这会导致 == 的运算结果有少许偏差。

对用十进制表示的数字执行几次减法运算,将结果存储到 C 中。

C = 0.5-0.4-0.1
C = -2.7756e-17

使用精确的十进制算术运算,C刚好等于 0。然而由于二进制浮点数算法的缘故,在这里它是一个很小的值。

比较 C0 是否相等。

C == 0
ans = logical
   0

使用容差 tol(而不是使用 ==)比较浮点数。

tol = eps(0.5);
abs(C-0) < tol
ans = logical
   1

C0 这两个数比 0.5 附近的两个连续浮点数更相互接近。许多情况下,C 的行为可能像 0

比较两个 datetime 数组的元素。

创建处于不同时区的两个 datetime 数组。

t1 = [2014,04,14,9,0,0;2014,04,14,10,0,0];
A = datetime(t1,'TimeZone','America/Los_Angeles');
A.Format = 'd-MMM-y HH:mm:ss Z'
A = 2x1 datetime
   14-Apr-2014 09:00:00 -0700
   14-Apr-2014 10:00:00 -0700

t2 = [2014,04,14,12,0,0;2014,04,14,12,30,0];
B = datetime(t2,'TimeZone','America/New_York');
B.Format = 'd-MMM-y HH:mm:ss Z'
B = 2x1 datetime
   14-Apr-2014 12:00:00 -0400
   14-Apr-2014 12:30:00 -0400

检查 AB 中的元素相等的位置。

A==B
ans = 2x1 logical array

   1
   0

输入参数

全部折叠

操作数,指定为标量、向量、矩阵或多维数组。输入 AB 必须具有相同的大小或具有兼容的大小(例如,A 是一个 M×N 矩阵,B 是标量或 1×N 行向量)。有关详细信息,请参阅基本运算的兼容数组大小

您可以比较任何类型的数值输入,并且比较不会因类型转换而损失精度。

  • 如果一个输入是 categorical 数组,另一个输入可以是 categorical 数组、字符向量元胞数组或单个字符向量。单个字符向量会扩展为与另一个输入大小相同的字符向量元胞数组。如果两个输入均为有序 categorical 数组,则必须具有相同的类别集(包括其顺序)。如果两个输入均非有序 categorical 数组,则可以有不同的类别集。有关详细信息,请参阅比较分类数组元素

  • 如果一个输入是 datetime 数组,则另一个输入可以是 datetime 数组、字符向量或字符向量元胞数组。

  • 如果一个输入是 duration 数组,则另一个输入可以是 duration 数组或数值数组。该运算符将每个数值视为一个天数,其中每天是有 24 小时的标准日。

  • 如果一个输入是字符串数组,则另一个输入可以是字符串数组、字符向量或字符向量元胞数组。AB 的对应元素以字典顺序进行比较。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | categorical | datetime | duration
复数支持:

提示

  • 当比较句柄对象时,使用 == 可以测试对象是否具有相同句柄。使用 isequal 可确定具有不同句柄的对象是否具有相等的属性值。

兼容性考虑

全部展开

R2016b 中的行为有变化

R2020b 中的行为有变化

扩展功能

HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 Verilog 代码和 VHDL 代码。

在 R2006a 之前推出