ExtractSegments (FPScript)
Extrait des segments de différentes longueurs d'un ensemble de données et les renvoie sous forme de liste.
Syntaxe
ExtractSegments(Data, BeginningsEnds [ , NameTemplate = "%1Segment%2" ])
ou
ExtractSegments(Data, Beginnings, Ends [ , NameTemplate = "%1Segment%2" ])
La syntaxe de la fonction ExtractSegments se compose des éléments suivants :
Section |
Description |
---|---|
Data |
L'ensemble de données à segmenter. Les structures de données autorisées sont Séries de données, Matrice de données, Signal, Série de signaux, Série de signaux avec composante X bidimensionnelle et Courbe 3D. Tous les types de données sont autorisés. Si l'argument est une liste, alors la fonction est exécutée pour chaque élément de la liste et le résultat est également une liste. |
BeginningsEnds |
En alternance, les indices des positions auxquelles commencent et se terminent les segments à extraire. Les structures de données autorisées sont Séries de données. Tous les types de données numériques sont autorisés. Si l'argument est une liste, alors la fonction est exécutée pour chaque élément de la liste et le résultat est également une liste. |
Beginnings |
Les indices des positions où commencent les segments à extraire. Les structures de données autorisées sont Séries de données. Tous les types de données numériques sont autorisés. Si l'argument est une liste, alors la fonction est exécutée pour chaque élément de la liste et le résultat est également une liste. |
Ends |
Les indices des positions où se terminent les segments à extraire. Les structures de données autorisées sont Séries de données. Tous les types de données numériques sont autorisés. Si l'argument est une liste, alors la fonction est exécutée pour chaque élément de la liste et le résultat est également une liste. |
NameTemplate |
Un modèle utilisé pour former les noms des éléments des segments. Utilisez "%1" pour insérer le nom de l'ensemble de données à segmenter et "%2" pour insérer le numéro du segment. Les structures de données autorisées sont Scalaire. Les types de données pris en charge sont Chaîne de caractères. Si l'argument n'est pas spécifié, il est défini à la valeur par défaut %1Segment%2 . |
Remarques
La première variante de la fonction utilise une série de données communes pour les positions de début et de fin des segments. Deux indices qui définissent le début et la fin d'un segment sont extraits de BeginningsEnds. Si le deuxième indice de BeginningsEnds indique une position qui se situe avant le premier indice, puis celle-ci est ignorée et l'indice suivant de BeginningsEnds est lu. Tout indice excédentaire à la fin est ignoré.
La deuxième variante de la fonction utilise des séries de données séparées pour les positions de départ et de fin. D'après les indices dans Beginnings et Ends des paires sont formées, qui définissent le début et la fin d'un segment. Si le prochain indice de Ends indique une position qui se situe avant l'indice actuel de Beginnings, alors il est ignoré et le prochain indice de Ends est lu. Des segments sont formés jusqu'à ce qu'il ne soit plus possible de former des paires d'indices. Les indices excédentaires sont ignorés.
Les valeurs se trouvant sur les positions de l'indice sont incluses dans le segment. Les indices sont comptés à partir de zéro. Les indices négatifs comptent à partir de la fin, c'est-à-dire que l'indice -1 correspond à la dernière valeur dans Data, -2 correspond à l'avant-dernier et ainsi de suite.
Si Data est une série de signaux, alors elle est segmentée dans la direction X. Dans le cas d'une matrice de données, cela correspond à une segmentation dans le sens de la ligne. Cela correspond à l'opération d'indexation Data[][Beginning, End].
Disponible dans
FlexPro Basic, Professional, Developer Suite
Exemples
ExtractSegments(Signal, Bursts(Signal, 0.1, 1.2, EVENT_BEGINNING), Bursts(Signal, 0.1, 1.2, EVENT_END)) |
Extrait une série de rafales d'un signal. |
ExtractSegments(Signal, Bursts(Signal, 0.1, 1.2, EVENT_BOTH)) |
Correspond au premier exemple. |
Dim Segments = ExtractSegments(Signal, Bursts(Signal, 0.1, 1.2, EVENT_BOTH)) |
Dans cet exemple, les composantes X des segments sont corrigées de manière à ce qu'elles commencent toutes par 0. |
ExtractSegments(Signal, SearchValue(Signal, {1.5 s, 3 s}), SearchValue(Signal, {1.8 s, 3.4 s})) |
Extrait deux segments d'un signal de temps. La première contient la section de signal de 1,5 s à 1,8 s et la seconde la section de signal de 3 s à 3,4 s. |