【发布时间】:2013-10-08 10:04:33
【问题描述】:
请看下面的代码:
Ex_ObjA.m
classdef Ex_ObjA
properties
a
end
methods
function Obj=Ex_ObjA(t)
Obj.a = t;
end
end
end
Ex_ObjBC.m
classdef Ex_ObjBC
properties
b
end
properties (Dependent = true, SetAccess = public)
c
end
methods
function Obj=Ex_ObjBC(t)
Obj.b = t;
end
function c=get.c(Obj,s1) % error: Get methods must have exactly one input
c = Obj.b + s1.a;
end
end
end
我尝试了以下操作:
s1 = Ex_ObjA(2);
s2 = Ex_ObjBC(3);
s2.c
不成功,因为“Get 方法必须只有一个输入”。所以我可以将s1.a 传递给Ex_ObjBC 得到s1.c?
【问题讨论】:
-
您需要将
Ex_ObjA.m类的对象存储在Ex_ObjBC.m中,并在Dependent get 方法中使用它。你也可以只做一节课。另一种解决方案是创建一个函数而不是一个 Dependent 属性。
标签: matlab oop properties matlab-class