IndexLength
new to Analytica 5.0
IndexLength(I)
Returns the number of elements in Index «I
».
IndexLength is closely related to the Size(a)
function, but differs in that IndexLength(I)
gives the size of the index I
, whereas Size(a)
gives the size of the value a
. For a simple, non-dynamic index, these are the same, but they are usually different in the case where a
is a multi-dimensional self-indexed array, or where the size of a dynamic index is requested from within a dynamic loop.
IndexLength(I)
is equivalent to Size(IndexValue(I))
, and to Sum(1,I)
.
Examples
Index The_Date := Sequence( 20-Jan-2009, 19-Jan-2017) Do IndexLength(The_Date)
→ 2922
Consider the case where variable A
is a self-indexed array:
- Index Digit :=
0..9
- Variable A := [0,10,20,30] + Digit
Size(A)
→ 40IndexLength(A)
→ 4
Suppose you need the length of the Time index from within a dynamic loop:
- Index Time :=
2017..2025
Dynamic( Size(Time) )
→ Array(Time, [1,1,1,1,1,1,1,1,1] )Dynamic( IndexLength(Time) )
→ Array(Time, [9,9,9,9,9,9,9,9,9])
Inside a dynamic loop, the value of [[Time] is the single time point, hence its Size is always 1. Hence, you should use IndexLength when you really want the length of the Time index.
History
IndexLength was introduced as a built-in function in Analytica 5.0. Prior to Analytica 5.0, you can define your own User-Defined Function:
- Function
IndexLength( I : Index ) := Size(I)
or use the more verbose expression Size(IndexValue(I))
when you need the size of the index.
Enable comment auto-refresher