subsref - Subscripted reference for objects

Syntax

B = subsref(A, S)

Description

B = subsref(A, S) is called for the syntax A(i), A{i}, or A.i when A is an object. S is a structure array with the fields

Remarks

subsref is designed to be used by the MATLAB interpreter to handle indexed references to objects. Calling subsref directly as a function is not recommended. If you do use subsref in this way, it conforms to the formal MATLAB dispatching rules and can yield unexpected results.

See the Remarks section of the numel reference page for information concerning the use of numel with regards to the overloaded subsref function.

If A is an array of one of the fundamental MATLAB data types, then referencing a value of A using an indexed reference calls the builtin MATLAB subsref method. It does not call any subsref method that you may have overloaded for that data type. For example, if A is an array of type double, and there is an @double/subsref method on your MATLAB path, the statement B = A(I) does not call this method, but calls the MATLAB builtin subsref method instead.

Examples

The syntax A(1:2,:) calls subsref(A,S) where S is a 1-by-1 structure with S.type='()' and S.subs={1:2,':'}. A colon used as a subscript is passed as the string ':'.

The syntax A{1:2} calls subsref(A,S) where S.type='{}' and S.subs={1:2}.

The syntax A.field calls subsref(A,S) where S.type='.' and S.subs='field'.

These simple calls are combined in a straightforward way for more complicated subscripting expressions. In such cases length(S) is the number of subscripting levels. For instance, A(1,2).name(3:5) calls subsref(A,S) where S is a 3-by-1 structure array with the following values:

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

See Also

subsasgn, substruct

See for more information about overloaded methods and subsref.

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS