Click or drag to resize

IMcObjectOpSelfConcatConcat Method

Binary operator to concatenate another array to this McObject, extending the overall shape of this McObject.

Namespace:  MediaCy.IQL.ObjectManager
Assembly:  MediaCy.IQL.ObjectManager (in MediaCy.IQL.ObjectManager.dll) Version: 10.0.6912.0
Syntax
VB
Function OpSelfConcatConcat ( 
	RightOperand As Object
) As McObject

Parameters

RightOperand
Type: SystemObject
Right operand. May be a scalar or array of any numeric type. It may also be an McObject instance of a numeric type.

Return Value

Type: McObject
Remarks
The elements of the VARIANT varRightOperand are "append concatenated" to this McObject, and the resulting array is returned. This operator is very much shape-aware and shape-dependent. Its purpose is to return an result which adds to (increases the size of) the outer-most (i.e., the left-most or row) dimension of the left-hand operand expression. Use the "simple concatenate" operator, OpSelfConcat, to extend the length of a 1-dimensional array. The formal shape changing rules are: 1. If and only if the left-hand expression's shape is one-dimensional, a copy of the left-hand operand is promoted to two-dimensions by adding a VAR'iable left-most row dimension of length one; the column dimension is set to the vector length of the left-hand operand (this column dimension is made VAR'iable if the operand is a VAR'iable length vector, FIX'ed if the operand is FIX'ed). If the left-hand operand's shape already had two or more dimensions, no dimension is added. For the self assignment version of the operator, ::=, the left hand side must be an named object which has already been declared with two or more dimensions, and the outer dimension must be VAR'iable (so that it can be increased). 2. The expression on the right of the operator must have either the same number of, or one fewer, dimensions than the (possibly promoted) left hand operand. If the number of dimensions of the right operand is the same as the left operand, then the resulting shape has a new outer dimension which is the sum of the two operand's outer dimensions (e.g., if we append a 3 by 2 object to a 4 by 2 object, we will get a 7 by 2 object). The shape of the right operand must "fit" with the shape of the left operand; that is, if a left operand dimension is FIX'ed size, then the corresponding dimension of the right operand must also be of that size (i.e., either FIX'ed and the same size, or VAR'iable with all instances of that size). 3. If the number of dimensions of the right operand is the one less than the left operand, then the returned shape has a new outer dimension which is the left operand's outer dimension incremented by one (e.g., if we append a length-2 vector to a 4 by 2 object, we will get a 5 by 2 object). Here too the shape of the right operand must "fit" with the shape of the left operand. That is, each left operand dimension of FIX'ed size must be matched with a corresponding dimension in the right operand of the same size; the "corresponding" dimension on the right will be the left dimension number minus one (e.g., dimension 1 on the left must be matched by dimension 0, the outer-most, on the right).
Examples
VB
Dim mcobjLeft As McObject
Set mcobjLeft =  GlobalTools.McObjectTemp( Array(1, 2, 3))
varRight = Array(10, 20, 30)
mcobjLeft.OpSelfConcatConcat varRight
' Show Operation McObject Result = 1,2,3  10,20,30
MsgBox( "Operation McObject Result = " + GlobalTools.McToText(mcobjLeft)).Value
' Show Result nDims: 2 Dim sizes: -2 -3
MsgBox( "Result nDims: " + Str( mcobjLeft.Shape(mcobjSIC_NofDims)) + _
" Dim sizes: " + GlobalTools.McToText( mcobjLeft.Shape(mcobjSIC_SizeAllDims))).Value
' Now extend the row outer dimension by 1
mcobjLeft.OpSelfConcatConcat Array(100,200,300)
' Show Operation McObject Result = 1,2,3  10,20,30  100,200,300
MsgBox( "Operation McObject Result = " + GlobalTools.McToText(mcobjLeft)).Value
' Show Result nDims: 3 Dim sizes: -3 -3
MsgBox( "Result nDims: " + Str( mcobjLeft.Shape(mcobjSIC_NofDims)) + _
" Dim sizes: " + GlobalTools.McToText( mcobjLeft.Shape(mcobjSIC_SizeAllDims))).Value
See Also

Reference

IMcObjectOpSelfConcatConcat(Object)
McOpSmallerOf
McOpAndBits
McOpConcatConcat
McOpAND