ExtractSegments (FPScript)

21.09.2021

Entnimmt Segmente unterschiedlicher Länge aus einem Datensatz und gibt diese als Liste zurück.

Syntax

ExtractSegments(Data, BeginningsEnds [ , NameTemplate = "%1Segment%2" ])
oder
ExtractSegments(Data, Beginnings, Ends [ , NameTemplate = "%1Segment%2" ])

 

Die Syntax der ExtractSegments-Funktion besteht aus folgenden Teilen:

Teil

Beschreibung

Data

Der zu segmentierende Datensatz.

Erlaubte Datenstrukturen sind Datenreihe, Datenmatrix, Signal, Signalreihe, Signalreihe mit zweidimensionaler X-Komponente und Raumkurve. Es sind alle Datentypen erlaubt.

Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste.

BeginningsEnds

Im Wechsel die Indizes der Positionen, an denen die zu extrahierenden Segmente beginnen und enden.

Erlaubte Datenstrukturen sind Datenreihe. Es sind alle numerischen Datentypen erlaubt.

Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste.

Beginnings

Die Indizes der Positionen, an denen die zu extrahierenden Segmente beginnen.

Erlaubte Datenstrukturen sind Datenreihe. Es sind alle numerischen Datentypen erlaubt.

Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste.

Ends

Die Indizes der Positionen, an denen die zu extrahierenden Segmente enden.

Erlaubte Datenstrukturen sind Datenreihe. Es sind alle numerischen Datentypen erlaubt.

Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste.

NameTemplate

Eine Vorlage, mit der die Elementnamen der Segmente gebildet werden. Verwenden Sie "%1", um den Namen des zu segmentierenden Datensatzes einzufügen, und "%2", um die Segmentnummer einzufügen.

Erlaubte Datenstrukturen sind Einzelwert. Unterstützte Datentypen sind Zeichenkette.

Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert %1Segment%2 gesetzt.

Anmerkungen

Die erste Variante der Funktion verwendet eine gemeinsame Datenreihe für die Anfangs- und Endpositionen der Segmente. Aus BeginningsEndswerden jeweils zwei Indizes entnommen, die den Anfang und das Ende eines Segments festlegen. Bezeichnet der jeweils zweite Index aus BeginningsEnds eine Position, die vor dem ersten Index liegt, dann wird dieser ignoriert und der nächste Index aus BeginningsEnds wird gelesen. Ein Überschüssiger Index am Ende wird ignoriert.

Die zweite Variante der Funktion verwendet getrennte Datenreihen für die Anfangs- und Endpositionen. Aus den Indizes in Beginnings und Ends werden Paare gebildet, die jeweils den Anfang und das Ende eines Segments festlegen. Bezeichnet der jeweils nächste Index aus Ends eine Position, die vor dem aktuellen Index aus Beginnings liegt, dann wird dieser ignoriert und der nächste Index aus Ends wird gelesen. Es werden solange Segmente gebildet, bis kein Indexpaar mehr gebildet werden kann. Überschüssige Indizes werden ignoriert.

Die auf den Indexpositionen liegenden Werte werden mit in das Segment aufgenommen. Die Indizes werden mit Null beginnend gezählt. Negative Indizes zählen vom Ende her, d. h. der Index -1 entspricht dem letzten Wert in Data, -2 dem vorletzten und so weiter.

Ist Data eine Signalreihe, dann wird in X-Richtung segmentiert. Bei einer Datenmatrix entsprechend in Zeilenrichtung. Dies entspricht der Index-Operation Data[][Beginning, End].

Verfügbarkeit

FlexPro Basic, Professional, Developer Suite

Beispiele

ExtractSegments(Signal, Bursts(Signal, 0.1, 1.2, EVENT_BEGINNING), Bursts(Signal, 0.1, 1.2, EVENT_END))

Entnimmt eine Reihe von Bursts aus einem Signal.

ExtractSegments(Signal, Bursts(Signal, 0.1, 1.2, EVENT_BOTH))

Entspricht dem ersten Beispiel.

Dim Segments = ExtractSegments(Signal, Bursts(Signal, 0.1, 1.2, EVENT_BOTH))
XScale(Segments, -Segments.X[0])

Die X-Komponenten der Segmente werden in diesem Beispiel so korrigiert, dass diese alle mit 0 beginnen.

ExtractSegments(Signal, SearchValue(Signal, {1.5 s, 3 s}), SearchValue(Signal, {1.8 s, 3.4 s}))

Entnimmt zwei Segmente aus einem Zeitsignal. Das Erste enthält den Signalabschnitt von 1.5 s bis 1.8 s und das Zweite den von 3 s bis 3.4 s.

Siehe auch

SplitIntoSegments-Funktion

XOffsetScale-Funktion

SearchValue-Funktion

Analyseobjekt Ereignisisolation

Datenstrukturen

Index-Operator

Artikel teilen oder als Email versenden:

Diese Beiträge könnten Sie ebenfalls interessieren