MATLAB Function Reference    
subsref

A(I), A{I}, A.field に対する多重定義メソッド

表示

詳細

B = subsref(A,S) は、A がオブジェクトのときに、シンタックス A(i), A{i}, A.i に対してコールされます。S は、つぎのフィールドをもつ構造体配列です。

例題

シンタックスA(1:2,:) は、subsref(A,S)をコールします。ここで、Sは、 S.type='()'、かつ、S.subs = {1:2,':'}である1行1列の構造体です。サブスクリプトとして使われるコロンは、文字列':'として渡されます。

A{1:2} は、subsref(A,S)をコールします。ここで、S.type='{}' です。

A.field は、subsref(A,S) をコールします。ここで、 S.type='.'、かつ、S.subs='field' です。

これらの簡単なコールは、より複雑なサブスクリプト表現に対してわかりやすい方法で組み合わされます。そのような場合、length(S) はサブスクリプトのレベル数です。たとえば、S が、つぎの表の値をもつ 3行1列の構造体配列のとき、A(1,2).name(3:5) は、subsref(A,S) をコールします。

S(1).type='()'
S(2).type='.'
S(3).type='()'
S(1).subs={1,2}
S(2).subs='name'
S(3).subs={3:5}

参考
subsasgn

多重定義メソッドと subsref に関する詳細は、Using MATLAB を参照してください。


 subspace subvolume