文档

索引引用

索引引用是如何工作的

对象索引引用三种形式——括号,括号,并且name:

{我}A.name (I)

这些语句在一个由MATLAB调用结果®subsref类的一个,或者调用内置的subsasgn如果类的函数一个不实现subsasgn方法。

MATLAB传递两个参数subsref并要求subsref返回索引引用的结果:

B = subsref (A, S)

第一个参数是被引用的对象,一个。第二个参数,年代,是一个substruct两个字段:

  • S.type是一个字符向量包含“()”,“{}”,或“。”指定使用的索引类型。

  • S.subs是细胞数组或字符向量包含实际的索引或名称。冒号作为索引单元阵列中传递冒号“:”。范围使用冒号(例如,指定2:5)扩展到2 3 4 5

例如,表达式:

:一个(1:4)

使MATLAB调用subsref (A, S),在那里年代是一个1×1双元素单元阵列结构。单元阵列包含数字1、2、3、4,冒号:

S.type=“()”S.subs= {1:4,“:”}

返回的每个单元格的内容S.subs给出了第一个维度和索引值字符向量“:”第二维度:

S.subs {:}
= 1 2 3 4岁=:

默认的subsref返回所有行1到4中数组元素,数组中的所有列。

同样,这个表达式:

一个{1:4}

使用一个单元阵列包含数字1,2,3,4。

S.type=“{}”S.subs= {1:4}

默认的subsref返回所有单元阵列元素的内容行1到4和数组中的所有列。

这个表达式:

A.Name

调用subsref (A, S),那里的结构体年代这些值:

S.type=“。”S.subs=“名字”

复合索引的引用

这些简单的组合呼吁更复杂的索引表达式。在这种情况下,长度(年代)是索引的数量水平。例如,

(1、2).PropertyName (1:4)

调用subsref (A, S),在那里年代是一系列3×1的结构体值:

(1)。类型=“()”(2)。类型=“。”(3)。类型=“()”(1)。潜艇= {1,2}(2)。潜艇=“PropertyName”(3)。潜艇= {1:4}

相关的话题