MTM
subsasgn
subscript assignment of arrays
Calling Sequence
Parameters
Description
Examples
subsasgn(A,index,val)
A
-
array or record
index
Record, list, or Array
val
any expression
inplace=truefalse
(optional) default to true
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 );.
with⁡MTM,subsasgn:
A≔Array⁡1,2,3,4
A≔1234
subsasgn⁡A,1,1,5
5234
A1,1
5
R≔Record⁡name=Paul
subsasgn⁡R,Record⁡type=.,:-subs=name,Bryan
R
R:-name
Bryan
B≔Array⁡Record⁡name=Paul,Record⁡name=Bryan
B≔Record⁡name=PaulRecord⁡name=Bryan
subsasgn⁡B,Record⁡type=(),:-subs=2,Record⁡type=.,:-subs=name,Michael
Record⁡name=PaulRecord⁡name=Michael
B2:-name
Michael
See Also
MTM[subsref]
Record
Download Help Document