主要内容

潜水艇

重新定义下标赋值

语法

= subsasgn (S B)

描述

对于R2021b及更高版本中编写的类,建议自定义索引的过程是从matlab.mixin.index.sparen,matlab.mixin.index.redesdot,matlab.mixin.index.redesbrace. 有关详细信息,请参阅自定义对象索引

= subsasgn (S B)MATLAB调用®的语法A(i)=B,{我}= BA.i=B什么时候A.是一个物体。

MATLAB使用内置的潜水艇函数解释索引赋值语句。通过重载修改类的索引赋值行为潜水艇在课堂上。

笔记

你必须打电话潜水艇使用输出参数。潜水艇不修改索引操作中使用的对象(第一个输入参数)。必须分配输出才能获得修改的对象。

输入参数

A.

在索引操作中使用的对象

s

具有两个字段的结构,类型潜艇.对于复合索引表达式,s是一个结构数组,每个索引级别对应一个结构。

  • 类型是一个字符包含(),{},指示所使用的索引类型。

  • 潜艇是包含实际下标的单元格数组、字符数组或字符串数组。

B

正在分配的值(分配语句的右侧)

输出参数

A.

赋值语句的结果,它是作为第一个参数传入的修改过的对象。

如果你的实现潜水艇方法指定多个值时,使用瓦拉金对于第三个输入参数。

例子

的参数值潜水艇对于所示的表达式:

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元素下标。

扩展能力

之前介绍过的R2006a