Extraction des données
Outre le calcul de données et la création de structures de données, l'extraction de parties d'ensembles de données est une utilisation importante de FPScript ; par exemple, tous les maxima locaux d'un signal ou l'intervalle entre deux passages à zéro. Pour ce type d'applications, FPScript propose deux opérateurs d'indexation très puissants.
Opérateur d'index
L'opérateur d'indexation extrait des valeurs individuelles ou des plages de valeurs en utilisant leur position dans la structure de données. Toutes les lignes des séries de données et toutes les lignes et colonnes des matrices de données sont numérotées en commençant par zéro. Les indices négatifs sont comptés à partir de la fin, ce qui signifie que -1 indexe la dernière ligne ou colonne. L'opération d'indexation vous permet d'accéder à des valeurs individuelles ou à des plages à l'aide de ces chiffres.
DataSeries[99n] lit, par exemple, la centième valeur d'une série de données.
DataSeries[-2n] lit l'avant-dernière valeur de la série de données.
DataSeries[0n, 49n] crée une série de données avec les 50 premières valeurs de DataSeries.
DataSeries[49n, -1n] crée une plage allant de la 50e valeur à la dernière valeur d'une série de données.
DataSeries[{0n, 5n, 7n, 9n}] crée une série de données avec les valeurs dont les indices sont listés. Ici, l'opérateur Bundle a été utilisé pour rassembler les indices requis dans une série de données.
DataSeries[(NumberOfRows(DataSeries), NumberOfRows(DataSeries) - 1n, -1n)]
Ici, l'opérateur de série de données est utilisé pour générer les indices. L'instruction inverse l'ordre des valeurs dans la série de données.
Pour une matrice de données, spécifiez deux indices. Le premier index sélectionne une ou plusieurs colonnes et le second sélectionne une ou plusieurs lignes :
DataMatrix[1n][2n] lit, par exemple, la troisième valeur de la deuxième colonne de la matrice de données comme une valeur scalaire.
DataMatrix[-1n] lit la dernière colonne d'une matrice de données comme série de données.
DataMatrix[][2n] lit la troisième ligne d'une matrice de données comme une série de données.
Vous pouvez également utiliser un index 2D. Il s'agit d'une matrice de données comportant deux lignes et n colonnes. Chaque colonne contient l'indice de colonne et de ligne d'une valeur à extraire :
DataMatrix[{ {1, 0}, {0, 1} }] prend deux valeurs d'une matrice de données comme série de données. Correspond à { DataMatrix[1][0], DataMatrix[0][1] }.
Opérateur d'indice de valeur
Lorsque vous travaillez avec des signaux et des séries de signaux, il est souvent plus judicieux de spécifier directement les valeurs X et Z lors de l'indexation des sections plutôt que de travailler avec les indices. Pour ce faire, FPScript fournit l'opérateur d'indexation des valeurs.
Signal[[0 s, 4,5 s]] crée, par exemple, un signal partiel avec les points des 4,5 premières secondes.
Notez que l'opération fonctionne comme prévu même lorsque la composante X du signal a l'unité ms, par exemple.
SignalSeries[[3.5 kHz]] extrait le signal avec la valeur Z 3.5 kHz de la série de signaux.
La syntaxe de l'opérateur Index de valeur correspond à celle de l'opérateur Index. Il suffit d'inclure deux fois tous les crochets. FPScript interprète alors les indices spécifiés comme des valeurs X ou Z et les recherche dans la composante X ou Z du signal ou de la série de signaux afin d'obtenir les positions.
Opérateur d'élément de liste
Vous pouvez utiliser l'opérateur d'élément de liste pour extraire un ou plusieurs éléments d'une liste, ce qui vous permet de travailler avec les indices ou les noms des éléments de la liste.
List.[1n] fournit, par exemple, le deuxième élément de la liste.
Liste.[-2n] prend l'avant-dernier élément d'une liste.
Liste.[1, 2] renvoie une liste partielle avec le 2ème et le 3ème élément.
List.Name prend l'élément primaire appelé "Nom" dans une liste.
List.["Current*"] renvoie tous les éléments de liste dont le nom commence par "Current".
Remarque : Sachez que l'accès aux éléments d'une liste par leur nom n'est pas toujours évident, car dans une liste, de nombreux éléments peuvent avoir le même nom.