【发布时间】:2017-11-01 01:03:06
【问题描述】:
我有一个对象数组(属于用户定义的类),我想为所有对象调用一个方法。该方法表示与三个自己的对象相关联的几个数据通道的处理步骤。
我看到了两种解决方案:
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
但是我不喜欢这两种解决方案,因为我应该在第一种情况下为每个方法调用添加相同的代码,或者在第二种情况下为每个方法定义添加相同的代码。 有没有更好的方法?
【问题讨论】:
-
你能澄清你的问题吗?
-
有什么不清楚的地方?我有 1xN 对象向量,我想简单地通过
objArray.step而不是 for 循环来调用方法。
标签: arrays matlab oop vectorization