重新定义下标赋值
= subsasgn (S B)
对于在R2021b及以后版本中创建的类,推荐的自定义索引的过程是从某些组合继承的matlab.mixin.indexing.RedefinesParen
,matlab.mixin.indexing.RedefinesDot
,matlab.mixin.indexing.RedefinesBrace
.有关更多信息,请参见定制对象索引.
= subsasgn (S B)
由MATLAB调用®的语法(我)= B
,{我}= B
,或我= B
当一个
是一个对象。
MATLAB使用内置的subsasgn
函数解释索引赋值语句。通过重载修改类的索引赋值行为subsasgn
在课堂上。
请注意
你必须叫subsasgn
带有输出参数。subsasgn
不修改索引操作中使用的对象(第一个输入参数)。您必须分配输出以获取修改后的对象。
|
用于索引操作的对象 |
|
结构有两个字段,
|
|
正在赋值(赋值语句右侧) |
|
赋值语句的结果,它是作为第一个参数传入的修改过的对象。 如果你的实现 |
的参数值subsasgn
对于所示表达式:
:一个(1:2)= B;
的语法:一个(1:2)= B
调用= subsasgn (S B)
在哪里年代
是一个结构S.type = ' () '
和S.subs ={1:2,‘:’}
.冒号字符(“:”
)表示冒号用作下标。
表达式:
{1:2} = B;
的语法{1:2} = B
调用= subsasgn (S B)
在哪里S.type =“{}”
和S.subs = {[1 2]}
.
表达式:
A.field = B;
的语法A.field = B
调用= subsasgn (S B)
在哪里S.type = '。'
和S.subs =“字段”
.
表达式:
(1、2). name (3:5) = B;
对于更复杂的索引表达式,简单的调用以简单的方式组合。在这种情况下,长度(年代)
是下标级别的数目。例如,(1、2). name = B (3:5)
调用= subsasgn (S B)
在哪里年代
是一个3乘1的结构数组,其值如下:
(1)。类型= '()' |
(2)。类型= '.' |
(3)。类型= '()' |
(1)。潜艇= {1,2} |
(2)。潜艇= 'name' |
(3)。潜艇= {[3 4 5]} |
在subsasgn
方法定义的类,MATLAB调用内置的subsasgn
.调用内置索引使您能够在定义专门化索引时使用默认索引行为。
在赋值(J, K,…)= B (M, N,…)
,下标J
,K
,米
,N
,等等,可以是标量、向量或数组,前提是下列条件都为真:
指定的下标数B
,不包括等于1的末尾下标,不会超过ndims (B)
.
指定的非标量下标数一个
等于指定的非标量下标数B
.例如,(5一4 1、2)= B (8)
是有效的,因为方程两边都使用一个非标量下标。
指定的所有非标量下标的顺序和长度一个
匹配指定的非标量下标的顺序和长度B
.例如,(1:4 3 3:9) = B (8, 1:7)
是有效的,因为方程两边(忽略一个标量下标3.
)使用4元素下标,然后是7元素下标。