主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

subsref

下标引用

说明

对于在 R2021b 及更高版本中创建的类,建议的自定义索引方式是从 matlab.mixin.indexing.RedefinesParenmatlab.mixin.indexing.RedefinesDotmatlab.mixin.indexing.RedefinesBrace 的某种组合中继承。有关详细信息,请参阅自定义对象索引

A 是对象时,MATLAB® 对语法 A(i)A{i}A.i 调用 B = subsref(A,S)

示例

示例

全部折叠

此示例说明对于以下索引表达式,MATLAB® 如何调用 subsref

A = magic(5);
A(1:2,:)
ans = 2×5

    17    24     1     8    15
    23     5     7    14    16

语法 A(1:2,:) 会执行调用 B = subsref(A,S),其中 S 是 1×1 结构体,其中 S.type'()'S.subs{1:2,':'}。冒号字符指示冒号用作下标。

此示例说明对于使用花括号的索引表达式, MATLAB® 如何调用 subsref

C = {"one", 2, 'three'};
C{1:2}
ans = 
"one"
ans = 
2

语法 C{1:2} 会调用 [c1,c2] = subsref(C,S),其中 S.type'{}'S.subs{[1 2]}

此示例说明对于使用圆点表示法的索引表达式, MATLAB® 如何调用 subsref

A = struct('number',10);
A.number
ans = 
10

语法 A.number 会执行调用 B = subsref(A,S),其中 S.Type'.'S.subs'number'

输入参数

全部折叠

索引对象数组,由 MATLAB 传递的作为索引表达式一部分的对象数组。

索引结构体,MATLAB 将其作为索引表达式的索引 substruct 传递,以调用 subsref。该结构体具有以下字段:

  • type - 包含 (){}. 的字符向量或字符串标量,用于指定下标类型。

  • subs - 包含实际下标的元胞数组、字符向量或字符串标量。

索引表达式可以使用多个级别来构成更复杂的表达式。例如,A{1}.field(3:5) 有三个索引级别。对于此表达式,S 是 3×1 结构体数组,包含以下字段:

disp(S(1))
    type: '{}'
    subs: {[1]}
disp(S(2))
    type: '.'
    subs: 'field'
disp(S(3))
    type: '()'
    subs: {[3 4 5]}

数据类型: struct

输出参量

全部折叠

索引表达式的结果。

详细信息

全部折叠

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出