定制isequal行为处理对象?
24日视图(30天)
显示旧的评论
可以定制吗
isequal
函数的类,即当两个句柄类定义对象视为平等的内容?我想详细说明我的问题如下:
请考虑以下简单的数据类
classdef<数据处理
属性
价值
结束
方法
函数自我=数据(值)
自我。价值= value;
结束
结束
结束
后
MathWorks——处理对象的平等
你可以检查如果两个对象
数据
使用类指向同一个引用
= =
操作符。相比之下,一个可以测试如果两个对象是相等的,使用Matlab内置的内容
isequal
函数。
这是很好。但是,我现在想覆盖
isequal
为我的类的行为。例如,我想定义这两个
数据
对象是相等的,如果他们的财产的价值内容
价值
在一个绝对的宽容是相等的
1 e-8。
我怎么可能实现呢?
注意:
我意识到压倒一切的可能性
情商
的方法
数据
类:
classdef<数据处理
属性
价值
结束
方法
函数自我=数据(值)
自我。价值= value;
结束
函数is_eq = eq(自我,其他)
如果(strcmp(类(自我),类(其他)))
is_eq = false;
返回
结束
is_eq = abs(自我。价值- other.value) < 1e-8;
结束
结束
结束
于是我可以测试两个对象的平等使用的内容
= =
操作符。然而,在我看来这是有问题的,因为:
我)
这是不符合最初的/以前的行为,因为
= =
运营商不再比较两个对象引用,而是内容。而且,
(二)
此外,我失去了检查的可能性两个对象具有相同的参考。