Matlab中isequal函数的使用
目录
isequal函数是确定数组相等性。
语法
tf = isequal(A,B)
tf = isequal(A1,A2,...,An)
说明
如果 A 和 B 等效,则 tf = isequal(A,B) 返回逻辑值 1 (true);否则,返回逻辑值 0 (false)。有关每种数据类型的等效性的定义,请参阅输入参数部分。NaN(非数值)、NaT(非时间)、未定义的分类元素和 <missing> 值被视为与其他元素不相等,彼此之间也不相等。
要将 NaN、NaT、<undefined> 和 <missing> 值视为与其他此类值相等,使用 isequaln。
如果所有输入是等效的,则 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
要比较的输入,指定为数组。
在某些情况下,输入的类型不必匹配:
-
如果数值输入的大小相同且内容等值,则它们是等效的。该检验将比较数值数组的实部和虚部。
-
对于表、时间表、结构体和元胞数组,仅当其所有元素和属性都相等时,它们才是等效的。
-
包含相同字符序列的字符串标量和字符向量是等效的。
某些数据类型比较具有涉及元数据的特殊注意事项。如果输入全部为:
-
结构体 - 只要内容相等即可,字段顺序无需相同。
-
有序分类数组 - 必须具有相同的类别集(包括其顺序)。
-
非有序分类数组 - 可以有不同的类别集,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 确定具有不同句柄的两个对象是否具有相同的属性值。
相关文章
- 【原创】Matlab.NET混合编程技巧之找出Matlab内置函数
- smo算法matlab实现
- [转] matlab调用opencv函数的配置
- 【Copula】考虑风光联合出力和相关性的Copula场景生成(Matlab代码实现)
- 基于MATLAB中雷达和视觉合成数据的目标级传感器融合(Matlab代码实现)
- 【MATLAB图像】— 绘制plot与其它二维图形
- matlab快速入门(4):使用内置的函数和常量
- MATLAB | solve函数求解析解时不支持分段函数的解决方案
- 【数字信号处理】相关函数应用 ( 使用 matlab 计算相关函数 )
- 【MATLAB】进阶绘图 ( imagesc 缩放颜色显示图像 | imagesc 函数 | Colormaps 颜色图 )
- 【MATLAB】基本绘图 ( 句柄值 | 对象句柄值获取 | 创建对象时获取句柄值 | 函数获取句柄值 | 获取 / 设置 对象属性 | 获取对象属性 )
- 【MATLAB】基本绘图 ( text 函数 | annotation 函数 | 绘制图像示例 )
- 【MATLAB】数据类型 ( 矩阵 | 随机数函数 | 生成矩阵 )
- MATLAB学习笔记(七)——MATLAB解方程与函数极值
- 【Python】实现MATLAB中计算两个矩形相交面积的rectint函数
- 未定义的函数或变量【一文讲透】(Matlab)
- VR视频流的预测、通信和计算持续时间优化(Matlab代码实现)
- 采用粒子群优化算法实现投资组合优化【Matlab实现】
- m基于matlab的模糊控制器仿真实现,采用matlab编程方式定义模糊规则,隶属函数等
- Matlab使用笔记(三):matlab设置代码自动补全功能