Было время, когда
builtin('subsref',T1,substruct('()',{1}))
(для любого пользовательского класса T1
*) пропустит вызов перегруженного subsref
для конкретного класса и вместо этого будет использовать встроенный метод. Это будет эквивалентно T1(1)
, но игнорируется любой класс, определенный для этого синтаксиса. Аналогично для subsasgn
, который является подписанной операцией присваивания T1(2)=T2
. Это позволило создавать и использовать массивы класса.
Однако, похоже, это больше не работает. Возможно, это связано с классами в стиле classdef
, так как в последний раз я использовал вышеприведенный прием перед тем, как они были введены.
Я бы посоветовал вам использовать для этого массивы ячеек (даже если вышеупомянутое все еще работает, я бы не рекомендовал это).
* Обратите внимание, что table
- это пользовательский класс, вы можете edit table
увидеть исходный код.