在Matlab中实现对象容器的最佳方法

riz*_*ize 3 oop matlab iterator list

我正在使用面向对象的Matlab,但我想知道,列出同一类的所有实例的对象列表的最佳方法是什么?我希望能够在for循环中遍历列表,并为类的每个实例访问相同的函数。

Amr*_*mro 5

为了重申Shai在评论中提到的内容,MATLAB 支持创建对象数组,并假设它们都属于同一类(否则,不会显式覆盖cat / horzcat / vertcat方法)。例如:

obj = MyClass();
arr = [obj,obj];    %# 1x2 array of objects
for ii=1:numel(arr)
    arr(ii)
end
Run Code Online (Sandbox Code Playgroud)

甚至可以通过实现converters方法或让您的所有类都从matlab.mixin.Heterogeneous超类继承来创建不同类型的对象数组。