FlexPro
HistoryBase
Engineering
Training
Downloads
FlexPro Support
Knowledge
Community
About us
References
Jobs
General Contact
List Of Retailers
FlexPro Support
EN
DE
FR
Placeholder

FlexPro Documentation 2025

Extracting Data

In addition to calculating data and creating data structures, extracting parts of data sets is an important use of FPScript; for instance, all local maxima in a signal or the range between two zero crossings. For these types of applications, FPScript offers two very powerful index operators.

Index Operator

The Index Operator extracts individual values or ranges of values using their position in the data structure. All rows in data series and all rows and columns in data matrices are numbered starting with zero. Negative indices are counted from the end, which means that -1 indexes the last row or column. The index operation makes it possible for you to access individual values or ranges using these numbers.

DataSeries[99n]     reads, for instance, the hundredth value from a data series.

DataSeries[-2n]     reads the second to the last value from the data series.

DataSeries[0n, 49n]     creates a data series with the first 50 values from DataSeries.

DataSeries[49n, -1n]     creates a range from the 50th value to the last value of a data series.

DataSeries[{0n, 5n, 7n, 9n}]     creates a data series with the values that have indices listed. Here, the Bundle operator was used to bring together the required indices into a data series.

DataSeries[(NumberOfRows(DataSeries), NumberOfRows(DataSeries) - 1n, -1n)]

Here, the data series operator is used to generate the indices. The statement reverses the order of values in the data series.

For a data matrix, specify two indices. The first index selects one or more columns and the second selects one or more rows:

DataMatrix[1n][2n]     reads, for instance, the third value from the second column of the data matrix as a scalar value.

DataMatrix[-1n]     reads the last column from a data matrix as data series.

Datenmatrix[][2n]    reads, for instance, the third from a data matrix as a data series.

Alternatively, you can use a 2D Index. This is a data matrix with two rows and n columns. Each column contains the column and row index of a value to be extracted:

DataMatrix[{ {1, 0}, {0, 1} }]    takes two values from a data matrix as a data series. Corresponds to { DataMatrix[1][0], DataMatrix[0][1] }.

 

You can also use the index operator on strings to extract a substring or the character code of a single character.

String[1n, 3n]  extracts a substring with a length of three characters starting from the 2nd character of the string

String[1n]  takes the character code of the second character from the string. The expression returns a 16-bit integer with the Unicode of the character.

(Strings[2n])[1n, 3n]  takes the 3rd string from a data series of strings and from this a substring with a length of three characters from the 2nd character. The bracket is necessary to separate the data index from the string index.

Value Index Operator

When working with signals and signal series, it often makes more sense to specify the X and Z values directly when indexing sections rather to work with the indices. To do this, FPScript provides the Value Index Operator.

Signal[[0 s, 4.5 s]]    creates, for example, a partial signal with the points of the first 4.5 seconds.

Note that the operation functions as expected even when the X component of the signal has the unit ms, for instance.

SignalSeries[[3.5 kHz]]    extracts the signal with the Z value 3.5 kHz from the signal series.

The syntax of the Value Index operator corresponds to that of the Index operator. All you have to do is to include all square brackets twice. FPScript then interprets the indices specified as X or Z values and looks for these in the X or Z component of the signal or signal series in order to obtain the positions.

List Element Operator

You can use the List Element Operator to extract one or more elements from a list, allowing you to work with the list element indices or names.

List.[1n]   provides, for instance, the second element in the list.

List.[-2n]   takes the second to last element from a list.

List.[1, 2]   returns a partial list with the 2nd and 3rd element.

List.Name   takes the element with name "Name" from a list.

List.["Current*"]   returns all list elements whose names start with "Current".

Note Please be aware that accessing list items by their names is not always unique, since in a list several items could share the same name.