ExtractSegments (FPScript)
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)) |
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. |