eq, ==
确定相等性
说明
示例
创建两个均包含实数和虚数的向量,然后比较向量的相等性。
A = [1+i 3 2 4+i]; B = [1 3+i 2 4+i]; A == B
ans = 1×4 logical array
0 0 1 1
eq
函数可测试实部和虚部是否相等,且仅当两个部分均相等时返回逻辑值 1
(true
)。
创建字符向量。
M = 'magenta';
使用 ==
测试是否有特定字符。
M == 'e'
ans = 1×7 logical array
0 0 0 1 0 0 0
逻辑值 1
(true
) 表示存在字符 'e'
。
创建一个分类数组,其中包含两个值 'heads'
和 'tails'
。
A = categorical({'heads' 'heads' 'tails'; 'tails' 'heads' 'tails'})
A = 2×3 categorical
heads heads tails
tails heads tails
查找 'heads'
类别中的所有值。
A == 'heads'
ans = 2×3 logical array
1 1 0
0 1 0
逻辑值 1
(true
) 表示类别中的一个值。
比较 A
的各行是否相等。
A(1,:) == A(2,:)
ans = 1×3 logical array
0 1 1
逻辑值 1
(true
) 表示行拥有相等的类别值。
以十进制文本表示的多个数字不能精确地表示为二进制浮点数。这会导致 ==
的运算结果有少许偏差。
对用十进制表示的数字执行几次减法运算,将结果存储到 C
中。
C = 0.5-0.4-0.1
C = -2.7756e-17
使用精确的十进制算术运算,C
应刚好等于 0
。然而由于二进制浮点数算法的缘故,在这里它是一个很小的值。
比较 C
与 0
是否相等。
C == 0
ans = logical
0
使用容差 tol
(而不是使用 ==
)比较浮点数。
tol = eps(0.5); abs(C-0) < tol
ans = logical
1
C
和 0
这两个数比 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 = 2×1 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 = 2×1 datetime
14-Apr-2014 12:00:00 -0400
14-Apr-2014 12:30:00 -0400
检查 A
和 B
中的元素相等的位置。
A==B
ans = 2×1 logical array
1
0
自 R2023a 开始提供
创建两个表并比较它们。行名称(如果两者中都存在)和变量名称必须相同,但顺序不必相同。输出的行和变量与第一个输入的顺序相同。
A = table([1;2],[3;4],VariableNames=["V1","V2"],RowNames=["R1","R2"])
A=2×2 table
V1 V2
__ __
R1 1 3
R2 2 4
B = table([4;2],[3;1],VariableNames=["V2","V1"],RowNames=["R2","R1"])
B=2×2 table
V2 V1
__ __
R2 4 3
R1 2 1
A == B
ans=2×2 table
V1 V2
_____ _____
R1 true false
R2 false true
输入参数
操作数,指定为标量、向量、矩阵、多维数组、表或时间表。输入 A
和 B
必须具有相同的大小或具有兼容的大小(例如,A
是一个 M
×N
矩阵,B
是标量或 1
×N
行向量)。有关详细信息,请参阅基本运算的兼容数组大小。
您可以比较任何类型的数值输入,并且比较不会因类型转换而损失精度。
如果一个输入是有序
categorical
数组,则另一个输入可以是有序categorical
数组,或是表示categorical
值的字符串标量或字符向量。如果两个输入均为有序categorical
数组,则必须具有相同的类别集(包括其顺序)。有关详细信息,请参阅比较分类数组元素。如果一个输入是
datetime
数组,则另一个输入可以是datetime
数组,或是表示日期和时间的字符串标量或字符向量。有关详细信息,请参阅比较日期时间。如果一个输入是
duration
数组,则另一个输入可以是duration
数组、表示时间长度的字符串标量或字符向量,或者是数值数组(其中每个元素表示固定长度 24 小时天数)。有关详细信息,请参阅比较日期时间。如果一个输入是字符串数组,则另一个输入可以是字符串数组、字符向量或字符向量元胞数组。
A
和B
的对应元素以字典顺序进行比较。有关详细信息,请参阅比较文本。
表或时间表形式的输入必须满足以下条件: (自 R2023a 起)
如果输入是表或时间表,则其所有变量都必须有支持该运算的数据类型。
如果只有一个输入是表或时间表,则另一个输入必须为数值或逻辑数组。
如果两个输入均为表或时间表,则:
两个输入必须具有相同的大小,或其中一个必须为单行表。
两个输入必须有相同名称的变量。但是,每个输入中的变量可以有不同的顺序。
如果两个输入均为表,并且都有行名称,则其行名称必须相同。但是,每个输入中的行名称可以有不同的顺序。
如果两个输入均为时间表,则其行时间必须相同。但是,每个输入中的行时间可以有不同的顺序。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| categorical
| datetime
| duration
| table
| timetable
复数支持: 是
提示
当比较句柄对象时,使用
==
可以测试对象是否具有相同句柄。使用isequal
可确定具有不同句柄的对象是否具有相等的属性值。
扩展功能
eq
函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
用法说明和限制:
代码生成不支持使用
eq
来测试枚举成员与字符串数组、字符数组或字符数组元胞数组之间的相等性。
HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
eq
函数支持 GPU 数组输入,但有以下用法说明和限制:
不支持稀疏
gpuArray
操作数。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出eq
运算符支持直接对表和时间表执行运算,无效通过索引访问其变量。所有变量都必须具有支持该运算的数据类型。有关详细信息,请参阅Direct Calculations on Tables and Timetables。
从 R2020b 开始,当参量为 categorical
、datetime
或 duration
数组时,eq
支持隐式扩展。在 R2020a 和 R2016b 之间,仅数值和字符串数据类型支持隐式扩展。
从 R2016b 开始增加了隐式扩展,以前返回错误的基本运算的一些参量组合现在能够生成结果。例如,以前无法对行和列向量执行加法运算,但现在这些操作数对加法运算是有效的。换句话说,[1 2] + [1; 2]
之类的表达式以前会返回大小不匹配错误,但现在可以正常执行了。
如果您的代码使用按元素运算符并依赖 MATLAB® 以前对不匹配大小返回的错误,尤其是在 try
/catch
块内,那么您的代码可能不再捕获这些错误。
有关基本数组运算要求的输入大小的详细信息,请参阅基本运算的兼容数组大小。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)