IndexLength

Revision as of 20:34, 4 August 2016 by Lchrisman (talk | contribs) (Introduced in Analytica 5.0)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


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) → 40
IndexLength(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.

See Also

Comments


You are not allowed to post comments.