メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

subsref

説明

R2021b 以降で作成されたクラスについて、インデックス付けをカスタマイズする際に推奨されるプロセスは、matlab.mixin.indexing.RedefinesParenmatlab.mixin.indexing.RedefinesDot および matlab.mixin.indexing.RedefinesBrace のいずれかの組み合わせから継承することです。詳細については、オブジェクトのインデックス付けのカスタマイズを参照してください。

B = subsref(A,S) は、A がオブジェクトの場合、構文 A(i)A{i} または A.i に対して MATLAB® により呼び出されます。

すべて折りたたむ

この例では、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) を呼び出します。ここで、SS.type'()'S.subs{1:2,':'} の 1 行 1 列の構造体です。コロン記号は、コロンが添字として使用されたことを示します。

この例では、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.numberB = subsref(A,S) を呼び出します。ここで、S.Type'.'S.subs'number' です。

入力引数

すべて折りたたむ

インデックス付きオブジェクト配列。MATLAB により、インデックス式の一部であるオブジェクト配列として渡されます。

インデックス付け構造体。MATLAB により、subsref の呼び出しを引き起こしたインデックス式に対するインデックス付け substruct として渡されます。この構造体には次のフィールドがあります。

  • type(){}、または . を含む文字ベクトルまたは string スカラー。添字のタイプを指定します。

  • subs – 実際の添字を含む cell 配列、文字ベクトル、または string スカラー。

インデックス式では複数のレベルを使用して、より複雑な式を形成できます。たとえば、A{1}.field(3:5) には 3 つのレベルのインデックス付けがあります。この式では、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 より前に導入