subsasgn - Subscripted assignment for objects

Syntax

A = subsasgn(A, S, B)

Description

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

Remarks

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

In the assignment A(J,K,...) = B(M,N,...), subscripts J, K, M, N, etc. may be scalar, vector, or array, provided that all of the following are true:

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

If A is an array of one of the fundamental MATLAB data types, then assigning a value to A with indexed assignment calls the builtin MATLAB subsasgn method. It does not call any subsasgn 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/subsasgn method on your MATLAB path, the statement A(I) = B does not call this method, but calls the MATLAB builtin subsasgn method instead.

Examples

The syntax A(1:2,:)=B calls A=subsasgn(A,S,B) 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}=B calls A=subsasgn(A,S,B) where S.type='{}'.

The syntax A.field=B calls subsasgn(A,S,B) 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)=B calls A=subsasgn(A,S,B) 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

subsref, substruct

See for more information about overloaded methods and subsasgn.

  


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