重新定义下标赋值
= subsasgn (S B)
对于R2021b及更高版本中编写的类,建议自定义索引的过程是从matlab.mixin.index.sparen
,matlab.mixin.index.redesdot
,matlab.mixin.index.redesbrace
. 有关详细信息,请参阅自定义对象索引.
= subsasgn (S B)
MATLAB调用®的语法A(i)=B
,{我}= B
或A.i=B
什么时候A.
是一个物体。
MATLAB使用内置的潜水艇
函数解释索引赋值语句。通过重载修改类的索引赋值行为潜水艇
在课堂上。
笔记
你必须打电话潜水艇
使用输出参数。潜水艇
不修改索引操作中使用的对象(第一个输入参数)。必须分配输出才能获得修改的对象。
|
在索引操作中使用的对象 |
|
具有两个字段的结构,
|
|
正在分配的值(分配语句的右侧) |
|
赋值语句的结果,它是作为第一个参数传入的修改过的对象。 如果你的实现 |
的参数值潜水艇
对于所示的表达式:
A(1:2,:)=B;
语法:一个(1:2)= B
电话= subsasgn (S B)
哪里s
是一个具有S.type='()'
和S.subs={1:2',:'}
. 冒号字符(“:”
)指示用作下标的冒号。
对于表达式:
{1:2} = B;
语法{1:2} = B
电话= subsasgn (S B)
哪里S.type='{}'
和S.subs={[12]}
.
对于表达式:
A.字段=B;
语法A.字段=B
电话= subsasgn (S B)
哪里S.type = '。'
和S.subs='字段'
.
对于表达式:
(1、2). name (3:5) = B;
对于更复杂的索引表达式,简单的调用以简单的方式组合。在这种情况下,长度(S)
是订阅级别的数目。例如,A(1,2).名称(3:5)=B
电话= subsasgn (S B)
哪里s
是具有以下值的3×1结构数组:
(1)。类型= '()' |
S(2).类型='。' |
S(3).类型='()' |
S(1).subs={1,2} |
S(2).subs='name' |
(3)。潜艇= {[3 4 5]} |
在潜水艇
方法定义的类,MATLAB调用内置的潜水艇
.调用内置索引使您能够在定义专门化索引时使用默认索引行为。
在作业中(J, K,…)= B (M, N,…)
,下标J
,K
,M
,N
,等等,可以是标量、向量或数组,前提是以下所有条件均为真:
为指定的下标数B
,不包括等于1的末尾下标,不会超过ndims(B)
.
为指定的非标度下标数A.
等于为指定的非标度下标数B
. 例如A(5,1:4,1,2)=B(5:8)
是有效的,因为方程两边都使用一个非标量下标。
为指定的所有非标度下标的顺序和长度A.
匹配为指定的非标度下标的顺序和长度B
. 例如A(1:4,3,3:9)=B(5:8,1:7)
是有效的,因为方程两边(忽略一个标量下标3.
)使用4元素下标,后跟7元素下标。