MATLAB Function Reference
subsasgn

Overloaded method for `A(I)=B`, `A{I}=B`, and `A.field=B`

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:

• `type`: A string containing `'()'`, `'{}'`, or `'.'`, where `'()'` specifies integer subscripts; `'{}'` specifies cell array subscripts, and `'.'` specifies subscripted structure fields.
• `subs`: A cell array or string containing the actual subscripts.

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 may yield unexpected results.

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 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}`

`subsref`
See Handling Subscripted Assignment for more information about overloaded methods and `subsasgn`.