确定数组相等性 -凯发官方首页
确定数组相等性
说明
如果所有输入是等效的,则 tf = isequal(
返回逻辑值 a1,a2,...,an
)1
(true
)。
示例
比较两个数值矩阵
创建两个数值矩阵并比较其相等性。
a = zeros(3,3) 1e-20; b = zeros(3,3); tf = isequal(a,b)
tf = logical
0
函数返回逻辑值 0
(false
),因为这两个矩阵有些许不同,并非完全相等。
比较两个结构体
创建两个结构体,并以不同的顺序指定字段。
a = struct('field1',0.005,'field2',2500); b = struct('field2',2500,'field1',0.005);
比较结构体的相等性。
tf = isequal(a,b)
tf = logical
1
即使每个结构体中的字段顺序不同,isequal
也将这些字段视为相同,因为它们的值相等。
比较数值与特殊非数值
将逻辑值 true
与双精度整数 1
进行比较。
isequal(true,1)
ans = logical
1
请注意,isequal
在测试相等性时不考虑数据类型。
同样地,将 'a'
与等效于 ascii 的整数 65
进行比较。
isequal('a',65)
ans = logical
1
结果为逻辑值 1
(true
),因为 double('a')
等于 65
。
比较包含 nan 值的向量
创建三个包含 nan 值的向量。
a1 = [1 nan nan]; a2 = [1 nan nan]; a3 = [1 nan nan];
比较向量的相等性。
tf = isequal(a1,a2,a3)
tf = logical
0
结果为逻辑值 0
(false
),因为 isequal
将 nan 值视为彼此之间互不相等。
比较两个日期时间值
确定阿拉斯加州安克雷奇市 2013 年 1 月 13 日午夜是否等于开罗在相同日期的上午 11 点。
t1 = datetime(2013,1,13,0,0,0,'timezone','america/anchorage'); t2 = datetime(2013,1,13,11,0,0,'timezone','africa/cairo'); tf = isequal(t1,t2)
tf = logical
1
给该日期加上 8 个月并比较这些日期时间值的相等性。
t1 = datetime(2013,9,13,0,0,0,'timezone','america/anchorage'); t2 = datetime(2013,9,13,11,0,0,'timezone','africa/cairo'); tf = isequal(t1,t2)
tf = logical
0
由于开罗不遵循夏令时,日期时间值不再相等。
比较字符向量与字符串标量
在比较包含相同字符序列的字符向量和字符串标量时,即使大小和数据类型不同,isequal
也会返回逻辑值 1
(true
)。
isequal("foo",'foo')
ans = logical
1
输入参数
a,b
— 要比较的输入(以单独参数指定)
数组
要比较的输入,指定为数组。
在某些情况下,输入的类型不必匹配:
如果数值输入的大小相同且内容等值,则它们是等效的。该检验将单独比较数值数组的实部和虚部。
对于表、时间表、结构体和元胞数组,仅当其所有元素和属性都相等时,它们才是等效的。
包含相同字符序列的字符串标量和字符向量是等效的。
某些数据类型比较具有涉及元数据的特殊注意事项。如果输入全部为:
结构体 - 只要内容相等即可,字段顺序无需相同。
有序分类数组 - 必须具有相同的类别集(包括其顺序)。
非有序分类数组 - 可以有不同的类别集,
isequal
会比较每对元素的类别名称。日期时间数组 -
isequal
在比较时间点时会忽略显示格式。如果数组都与时区关联,则isequal
会比较时刻而不是钟面时间(例如,时刻01-may-2018 09:00:00 edt
与01-may-2018 06:00:00 pdt
相同,因此isequal
返回true
,即使钟面时间 9:00 和 6:00 不同)。对象 -
isequal
为具有相同属性值的同一类对象返回逻辑值1
(true
)。
a1,a2,...,an
— 要比较的输入序列(以单独参数指定)
数组
要比较的输入序列,指定为数组。
在某些情况下,输入的类型不必匹配:
如果数值输入的大小相同且内容等值,则它们是等效的。该检验将单独比较数值数组的实部和虚部。
对于表、时间表、结构体和元胞数组,仅当其所有元素和属性都相等时,它们才是等效的。
包含相同字符序列的字符串标量和字符向量是等效的。
某些数据类型比较具有涉及元数据的特殊注意事项。如果输入全部为:
结构体 - 只要内容相等即可,字段顺序无需相同。
有序分类数组 - 必须具有相同的类别集(包括其顺序)。
非有序分类数组 - 可以有不同的类别集,
isequal
会比较每对元素的类别名称。日期时间数组 -
isequal
在比较时间点时会忽略显示格式。如果数组都与时区关联,则isequal
会比较时刻而不是钟面时间(例如,时刻01-may-2018 09:00:00 edt
与01-may-2018 06:00:00 pdt
相同,因此isequal
返回true
,即使钟面时间 9:00 和 6:00 不同)。对象 -
isequal
为具有相同属性值的同一类对象返回逻辑值1
(true
)。
提示
两个函数句柄的相等性取决于它们的构造方式。有关详细信息,请参阅。
对于两个具有动态属性的对象,即使它们具有相同的属性名称和值,
isequal
也会返回逻辑值0
(false
)。isequal
在测试两个对象是否相等时仅比较存储的(非从属)属性。比较两个句柄对象时,使用
==
可以测试它们是否具有相同的句柄。使用isequal
确定具有不同句柄的两个对象是否具有相同的属性值。比较空对象数组时,仅当数组具有相同的大小和类时,
isequal
才返回逻辑值1
(true
)。
扩展功能
c/c 代码生成
使用 matlab® coder™ 生成 c 代码和 c 代码。
gpu 代码生成
使用 gpu coder™ 为 nvidia® gpu 生成 cuda® 代码。
基于线程的环境
使用 matlab® backgroundpool
在后台运行代码或使用 parallel computing toolbox™ threadpool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅run matlab functions in thread-based environment。
gpu 数组
通过使用 parallel computing toolbox™ 在图形处理单元 (gpu) 上运行来加快代码执行。
此函数完全支持 gpu 数组。有关详细信息,请参阅run matlab functions on a gpu (parallel computing toolbox)。
分布式数组
使用 parallel computing toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅run matlab functions with distributed arrays (parallel computing toolbox)。
版本历史记录
在 r2006a 之前推出r2022b: 空对象数组的相等性
在以前的版本中,isequal
认为当两个或多个空对象数组的大小相同时,它们就相等,而不考虑类是否相同。从 r2022b 开始,仅当数组具有相同的大小和类时,isequal
才会为空对象数组返回逻辑值 1
(true
)。
另请参阅
| | |
主题
打开示例
您曾对此示例进行过修改。是否要打开带有您的编辑的示例?
matlab 命令
您点击的链接对应于以下 matlab 命令:
请在 matlab 命令行窗口中直接输入以执行命令。web 浏览器不支持 matlab 命令。
you can also select a web site from the following list:
how to get best site performance
select the china site (in chinese or english) for best site performance. other mathworks country sites are not optimized for visits from your location.