我有一个对象数组(用户定义的类),我想为所有这些对象调用一个方法。该方法代表几个数据通道的处理步骤,与treir自己的对象相关联。
我看到两个解决方案:
1)为向量中的每个对象写一个for循环调用方法:
for i=1:numel(objArray)
objArray(i).step;
end
2)在类方法中添加长度检查,如下所示:
function step(obj)
if numel(obj)>1
for i=1:numel(obj)
step(obj(i));
end
return;
end
% some processing ...
end
但我不喜欢这两种解决方案,因为我应该在第一种情况下为每个方法调用添加相同的代码,或者在第二种情况下为每个方法定义添加相同的代码。 有没有更好的方法呢?
答案 0 :(得分:2)
典型的模式如下:
function step(objArray)
for i = 1:numel(objArray)
% some processing on objArray(i)
end
end
在您的问题中,不需要在单个元素上递归调用方法的奇怪if
- 只需直接对每个元素进行处理。