主要内容

subsasgn

重新定义下标赋值

语法

= 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不修改索引操作中使用的对象(第一个输入参数)。您必须指定输出获得修改对象。

输入参数

一个

对象用于索引操作

年代

结构有两个字段,类型潜艇。复合索引表达式,年代是一个结构数组,每个级别的一个索引。

  • 类型是一个字符向量或字符串包含(),{},或,说明使用的索引类型。

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

B

值被分配(赋值语句的右边)

输出参数

一个

赋值语句的结果,这是修改后的对象作为第一个参数传递。

如果您的实现subsasgn方法分配多个值,使用变长度输入宗量第三输入参数。

例子

参数的值subsasgn显示的表达式:

:一个(1:2)= B;

的语法:一个(1:2)= B调用= subsasgn (S B)在哪里年代是一个结构年代。类型=“()”年代。潜艇= {1:2,‘:’}。冒号字符(“:”)表示一个冒号作为下标。

表达式:

{1:2}= B;

的语法{1:2}= B调用= subsasgn (S B)在哪里年代。类型=“{}”年代。潜艇= {(1 2)}

表达式:

一个。场= B;

的语法一个。场= B调用= subsasgn (S B)在哪里年代。类型= '。'年代。潜艇=“字段”

表达式:

(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)

  • nonscalar下标指定的数量一个= nonscalar下标指定的数量B。例如,(5一4 1、2)= B (8)方程是有效的,因为双方都使用一个nonscalar下标。

  • 所有nonscalar下标指定的顺序和长度一个匹配的顺序和长度nonscalar下标指定B。例如,(1:4 3 3:9)= B (8, 1:7)是有效的,因为双方的方程(忽略了一个标量下标吗3)使用第4单元下标7-element下标。

扩展功能

版本历史

之前介绍过的R2006a