默认情况下,索引操作引用的值的数量决定了有多少输出参数MATLAB®使用电话subsref
.类似地,在索引赋值操作中要赋值的值的数量决定了MATLAB使用多少输入参数来调用subsasgn
.
如果类设计要求索引操作返回或分配与索引操作定义的数值不同数量的值,请使用numArgumentsFromSubscript
以指定所需的编号。numArgumentsFromSubscript
提供控制nargout
为subsref
和输入参数个数
为subsasgn
.
如果你的类使用numArgumentsFromSubscript
、实现subsref
和subsasgn
方法定义索引操作返回或赋值的实际值。
在MATLAB发布R2015b之前,MATLAB对一些返回或赋值给逗号分隔列表的索引表达式产生了不同的结果。使用numArgumentsFromSubscript
支持依金宝app赖于以前版本行为的代码。而且,现在你可以超载了numArgumentsFromSubscript
而不是元素个数
不需要重新定义如何实现特定的结果元素个数
的工作原理。
当类重载时numArgumentsFromSubscript
, MATLAB调用此方法代替元素个数
来计算预期的参数数量subsref
nargout
和subsasgn
输入参数个数
.
如果类不重载numArgumentsFromSubscript
, MATLAB调用元素个数
计算…的值nargout
或输入参数个数
.
MATLAB调用numArgumentsFromSubscript
有三个输入参数:
函数n = numargumentsfrom下标(obj,s,indexingContext)…结束
输入参数 | 描述 |
---|---|
|
的对象 |
|
索引结构,包含操作中使用的索引类型和索引 |
|
发生索引操作的上下文:用作语句的索引引用、用作函数参数的索引引用和索引赋值 |
MATLAB使用返回的值numArgumentsFromSubscript
索引引用和赋值。的值确定执行索引操作的上下文indexingContext
在实现numArgumentsFromSubscript
.例如,测试任何或所有可能的索引上下文。
函数n = numArgumentsFromSubscript (obj, ~, indexingContext)开关indexingContext情况下matlab.mixin.util.IndexingContext.Statement n =...;% nargout用于索引引用语句情况下matlab.mixin.util.IndexingContext.Expression n =...;% nargout用于作为函数参数的索引引用情况下matlab.mixin.util.IndexingContext.Assignment n =...;索引赋值的% nargin结束结束
有关更多信息和示例,请参见numArgumentsFromSubscript
.
对于MATLAB版本R2015b和以后的版本,过载numArgumentsFromSubscript
而不是元素个数
自定义类的索引。