MTM[subsasgn] - subscript assignment of arrays
|
Calling Sequence
|
|
subsasgn(A,index,val)
|
|
Parameters
|
|
A
|
-
|
array or record
|
index
|
-
|
Record, list, or Array
|
val
|
-
|
any expression
|
inplace=truefalse
|
-
|
(optional) default to true
|
|
|
|
|
Description
|
|
•
|
The subsasgn command mirrors subscript assignment in MATLAB. Using A(index) = val in MATLAB will produce the same result as subsasgn(A,index,val).
|
•
|
subsasgn returns an array of the same type as A. The result may be a copy of A. Typically the returned result will be a reference to the same A that was passed in.
|
•
|
Use the calling sequence A := subsasgn(A,index,val) when you want to continue using A as if A[index] := val had been executed. Assigning A to the result will ensure your code uses the updated version of A when a copy was returned.
|
•
|
If you always want a copy of the result use the option inplace=false. With inplace=true, a copy will only be generated if the operation results in an array that is bigger than the input array (has more dimensions, or larger ranges in any dimension).
|
•
|
More complicated MATLAB indexing, such as A(index1).index2(index3) require the use of a Record or array of Records with "type" and "subs" fields to specify the subreference for each indexing operation. The "type" field can have the values "()", "{}", or ".". There is no distinction between the first two, "()" and "{}", which indicate array-indexing. The "." type indicates an index into a Record. The "subs" field contains the actual index value. For example A(i,j) can be modified up via subsasgn(A,Record(type="()",subs=Array([i,j])),val); Similarly A(i,j).name can be updated via subsasgn(A,< Record(type="()",subs=Array([i,j])) Record(type=".",subs="name") >, val );.
|
|
|
Examples
|
|
>
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
>
|
|
| (5) |
>
|
|
| (6) |
>
|
|
| (7) |
>
|
|
| (8) |
>
|
|
| (9) |
|
|
Download Help Document
Was this information helpful?