1

当将此类的对象分配给变量时,是否可以使 Matlab 调用copy我的类TMyClass(这是一个类)的方法。handle换句话说,我希望我handle的类在复制它时表现得像一个值类:

obj = TMyClass(); %// has method "copy", which returns a deep copy of the object
%// Now, if I write this ...
obj_copy = obj;   
%// ... I want Matlab to do in fact this:
obj_copy = obj.copy; %// 

据我了解,没有办法覆盖=Matlab 中的运算符。还有其他解决方法吗?

谢谢!

4

1 回答 1

0

如果您有一个值类,那么obj_copy = obj将创建您的对象的一个​​新副本。对于句柄类,您始终必须自己调用复制函数。我已经遇到了同样的问题,建议你copy按照你的建议做一个方法。

根据你的设计和你想用它做什么,你也可能会发疯并使用流畅的界面。在我的情况下,我有一个包含数据的对象,它以这种方式返回自身的过滤副本:

obj = DataObject()
f1 = obj.getByType('pressure') % f1 ~= obj
f2 = f1.getByTemperature(@(x) x < 10) % using an anonymous function for filtering, also f2 ~= f1
于 2020-09-19T13:15:02.687 回答