我有一个班级' classB'包含classA的多个对象作为属性。 classB包含与classA相同的方法,但将它们应用于它包含的所有ClassA对象。有没有办法在单个classB函数中执行此操作,而不是使用for循环添加它们?
classdef ClassB
properties
ClassAObj{1:3} %cell containing multiple class A objects
end
methods
function function1(ClassB)
for k = 1:numel(ClassAObj)
obj.ClassAObj{k}.function1
end
end
function function2(ClassB)
for k = 1:numel(ClassAObj)
obj.ClassAObj{k}.function2
end
end
function...
end
end
classdef ClassA
methods
function1
function2
function...
end
end
答案 0 :(得分:0)
执行以下行将把给定函数应用于obj.ClassAObj中的所有对象,其中obj是一个classB对象。
obj.SuperFunction(@function1)
classdef ClassB
properties
ClassAObj{1:3} %cell containing multiple class A objects
end
methods
function obj = ClassB
%constructor loading ClassA objects
...
end
function Superfunction(obj,ClassAfunctionName)
cellfun(ClassAfunctionName,obj.ClassAObj)
end
end
end