Products & Services Industries Academia Support User Community Company

Learn more about MATLAB   

subsasgn - Subscripted assignment

Syntax

A = subsasgn(A, S, B)

Description

A = subsasgn(A, S, B) is called by MATLAB for the syntax A(i) = B, A{i} = B, or A.i = B when A is an object.

MATLAB uses the built-in subsasgn function to interpret indexed assignment statements. Modify the indexed assignment behavior of classes by overloading subsasgn in the class.

If A is a fundamental class (see Classes (Data Types)), then an indexed reference to A calls the built-in subsasgn function. It does not call a subsasgn method that you have overloaded for that class. Therefore, if A is an array of class double, and there is an @double/subsasgn method on your MATLAB path, the statement A(I) = B calls the MATLAB built-in subsasgn function.

Inputs

A

Object

S

struct array with two fields, type and subs.

  • type is a string containing '()', '{}', or '.', where '()' specifies integer subscripts, '{}' specifies cell array subscripts, and '.' specifies subscripted structure fields.

  • subs is a cell array or string containing the actual subscripts.

B

Assignment value (right-hand side)

Outputs

A

Result of evaluating assignment.

Examples

See how MATLAB calls subsasgn for the expression:

A(1:2,:) = B;

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,':'}. The string ':' indicates a colon used as a subscript.

 

See how MATLAB calls subsasgn for the expression:

A{1:2} = B;

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

 

See how MATLAB calls subsasgn for the expression:

A.field = B;

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

 

See how MATLAB calls subsasgn for the expression:

A(1,2).name(3:5)=B;

Simple calls combine in a straightforward way for more complicated indexing 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 4 5]}

Algorithm

In the assignment A(J,K,...) = B(M,N,...), subscripts J, K, M, N, and so on, can be scalar, vector, or arrays, when all the following are true:

See Also

subsref | substruct

Tutorials

  


Recommended Products

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.

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