我想通过<代码>()和{><>>>>/code>超载我的MATLAB课程之一。 可通过实施>>subsref
,对该类别进行罚款。
However, I also want to keep the default behaviour of indexing via .
(i.e. access to methods and properties) for this class. I tried using the following code:
function x = subsref(this, S)
if strcmp(S(1).type, {} )
% My own implementation here
elseif strcmp(S(1).type, () )
% My own implementation here
elseif strcmp(S(1).type, . )
x = builtin( subsref , this, S);
else
error( Unknown index variant. );
end
然而,这并不奏效,因为我不知道要求<代码>builtin(分点,即S)代码>的多少产出论点会回来。 尤其是,我的班子的一种方法可能回去了一些不同的论点,其产出论点的数量取决于其投入论点的数量和价值。 A MATLAB example for subsref
(中间环节)说明:
当你执行<条码> 某类方法,你必须明确执行所有附则提及[......]
这是否真正是唯一可能的解决办法? 对于复杂的方法,这基本上意味着重复许多逻辑。 就我而言,这无疑是无法维持的(有多种方法和特性的大型班级)。
注:我知道,这都是关于合成糖,我总是能够使用标准方法电话,而不是超载(
和{}
。