matlab:将句柄类复制为值类

时间:2015-08-24 20:55:54

标签: matlab matlab-class

当将此类的对象分配给变量时,是否可以使Matlab调用类copy的{​​{1}}方法(TMyClass calss)。换句话说,我希望我的handle类在复制时表现为值类:

handle

据我所知,没有办法在Matlab中覆盖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; %// 运算符。还有其他解决办法吗?

谢谢!

1 个答案:

答案 0 :(得分: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