自定义索引方法的参数数量
返回期望的输入数量n
= numArgumentsFromSubscript (obj
,年代
,indexingContext
)subsasgn
或者期望的输出数量subsref
.
过载numArgumentsFromSubscript
描述从返回或赋值给逗号分隔列表的索引表达式返回的值的数量。也就是说,索引表达式以“{}”
或“。”
索引。的numArgumentsFromSubscript
函数可以:
访问索引表达式中使用的索引操作和索引。
确定索引操作是在引用语句、传递给函数的表达式或赋值的上下文中进行的。
如果类重载numArgumentsFromSubscript
, MATLAB®当元素数大于1时,调用它来确定索引操作中涉及的数组元素数。例如,这些“。”
索引操作生成调用numArgumentsFromSubscript
:
objArray.a
-语句中引用的元素个数(声明
)
func (objArray.a)
-表达式中返回的元素数量(表达式
)
[objArray。) = rhs
-以逗号分隔的列表分配的值的数量(赋值
)
MATLAB使用调用上下文来确定何时应用返回的值numArgumentsFromSubscript
.你的实现numArgumentsFromSubscript
可以为三种类型的索引语句提供不同的输出。例如,这个超载numArgumentsFromSubscript
:
的输出参数的预期数量subsref
用于为传递给函数的表达式建立索引。
使用索引子结构年代
确定索引操作所需的参数数量
函数n = numArgumentsFromSubscript (obj,年代,indexingContext)如果indexingContext == matlab.mixin.util.IndexingContext.Expression n = 1;其他的n =长度(s (1) .subs {:});结束结束
实现subsref
方法varargout
输出,使MATLAB能够使用指定数量的输出参数调用此方法。
函数varargout = subsref (obj,年代)...结束
过载numArgumentsFromSubscript
而不是元素个数
控制的结果从超负荷subsref
和subsasgn
.重载numArgumentsFromSubscript
能否避免重载引起的错误元素个数
.