Indexoperator (FPScript)

23.08.2021

Indiziert einen einzelnen Wert oder einen Ausschnitt aus einem Ausdruck.

Syntax

Term Index1[Index2]

wobei Index1 für folgende Varianten steht:

[]

oder

[Index]

oder

[von, bis]

oder

[[ ]]

oder

[[Werteindex]]

oder

[[WertVon, WertBis]]

und der optionale Index2 für folgende Varianten steht:

[Index]

oder

[von, bis]

oder

[[Werteindex]]

oder

[[WertVon, WertBis]]

Die Syntax des Indexoperators besteht aus folgenden Teilen:

Teil

Beschreibung

Term

Ein Ausdruck, der eine Variable, eine Formel oder einen Datensatz bezeichnet, eine Funktion aufruft oder ein Element aus einer Liste selektiert oder ein beliebiger Ausdruck in Klammern.

Index

Gibt die Nummer(n) der zu indizierenden Wert(e) an. Kann ein ganzzahliger Einzelwert, eine Datenreihe oder Datenmatrix mit ganzzahligen Werten oder vom Datentyp Leer sein.

von

Gibt den Index des ersten Wertes eines zu indizierenden Bereichs an. Muss ein reeller ganzzahliger Einzelwert oder vom Datentyp Leer sein.

bis

Gibt den Index des letzten Wertes eines zu indizierenden Bereichs an. Muss ein reeller ganzzahliger Einzelwert oder vom Datentyp Leer sein.

WerteIndex

Gibt die X- bzw. Z-Werte der zu indizierenden Wert(e) bzw. Signale an. Kann ein numerischer Einzelwert, eine Datenreihe mit numerischen Werten oder vom Datentyp Leer sein.

WertVon

Gibt den X- bzw. Z-Wert des ersten Wertes bzw. Signals eines zu indizierenden Bereichs an. Muss ein numerischer Einzelwert oder vom Datentyp Leer sein.

WertBis

Gibt den X- bzw. Z-Wert des letzten Wertes bzw. Signals eines zu indizierenden Bereichs an. Muss ein numerischer Einzelwert oder vom Datentyp Leer sein.

Anmerkungen

Der mit einfacher Klammer geschriebene Indexoperator kann einzelne Werte oder Ausschnitte aus Datenreihen, Datenmatrizen, Signalen, Signalreihen und Raumkurven extrahieren.

Die Indizes werden mit Null beginnend gezählt. Negative Indizes zählen vom Ende her, d. h. der Index -1 entspricht dem letzten Element, -2 dem vorletzten und so weiter. Bei den zweidimensionalen Datenstrukturen - Datenmatrix und Signalreihe - können zwei Indizes hintereinander angegeben werden. Der erste Index heißt Spaltenindex bezieht sich dann auf die Datenreihen in einer Datenmatrix bzw. auf die Signale in einer Signalreihe und der optionale zweite Index heißt Zeilenindex und bezieht sich auf die Werte in den mit dem ersten Index extrahierten Datenreihen bzw. Signale. Wenn Sie den ersten Index leer lassen oder Index als Wert mit Datentyp Leer einsetzen, indiziert dieser alle Datenreihen bzw. Signale.

Wie die Syntax aufzeigt, können Sie den Index in drei Varianten angeben: Wenn Sie als Index einen Einzelwert (Einzelwertindex) angeben, entnimmt der Index ein Element und der Rang des Ergebnisses vermindert sich um Eins. Wenn Sie als Index eine Datenreihe (Datenreihenindex) oder einen Bereich von, bis (Bereichsindex) angeben, werden die in der Datenreihe aufgeführten Werte bzw. die im Bereich liegenden Werte entnommen.  Wenn Sie für eines der Argumente Index, von oder bis einen Fließkommawert angeben, so werden dessen Nachkommastellen ignoriert. Ein ungültiger Fließkommawert wird als 0 interpretiert. Wenn Sie von bzw. bis als Wert mit Datentyp Leer einsetzen, entspricht dies dem ersten bzw. letzten Element in der zu indizierenden Dimension des Datensatzes.

Um beliebige Streudaten aus einer Datenmatrix oder Signalreihe zu extrahieren geben Sie Index als Datenmatrix mit zwei Zeilen und n Spalten (2D-Index) an. Jede Spalte von Index enthält den Spalten- und Zeilenindex eines zu entnehmenden Wertes. Das Ergebnis ist dann eine Datenreihe bzw. Raumkurve mit den entnommenen Werten.

Ist Term eine Größe, dann wird deren Einheit übernommen und auch das Ergebnis ist eine Größe. Ist Index, von oder bis eine Größe, dann muss diese die SI-Dimension 1 haben und wird vor der Indizierung auf die Einheit 1 transformiert.

Der mit doppelter Klammer geschriebene Werteindexoperator kann einzelne Werte oder Ausschnitte aus Signalen und Signalreihen extrahieren. Die Indizierung erfolgt hierbei nicht über Indizes, sondern über X- bzw. Z-Werte. Signalreihen mit zweidimensionaler X-Komponente werden nicht unterstützt. Falls die angegebenen X- bzw. Z-Werte nicht exakt in dem Signal bzw. der Signalreihe vorkommen, werden die Positionen der Werte verwendet, die den angegeben Werten am nächsten liegen. Zur Ermittlung der zu den angegebenen X- bzw. Z-Werten korrespondierenden Indizes verwendet der Werteindexoperator die Funktion SearchValue. Ungültige Fließkommawerte sind als Werteindizes nicht erlaubt.

Ist Werteindex, WertVon oder WertBis eine Größe, dann muss diese die gleiche SI-Dimension wie die entsprechende Komponente von Term haben und wird vor der Indizierung auf deren Einheit transformiert. Werden nur Zahlenwerte ohne Einheit angegeben, dann werden diese als in der entsprechenden Einheit vorliegend interpretiert.

Wenn der indizierte Term eine zusammengesetzte Datenstruktur repräsentiert, dann muss die Datenstruktur von Ausdruck entweder auf die Y-Komponente oder die komplette Datenstruktur passen. Im ersten Fall werden nur die indizierten Y-Werte in Term überschrieben und im zweiten Fall auch die X- und ggf. Z-Werte.

Ist Term eine Liste, dann wird die Indexoperation elementweise ausgeführt und das Ergebnis ist ebenfalls eine Liste. Ist Index1 und/oder Index2 eine Liste, dann werden in dem Fall, dass Term ebenfalls eine Liste ist, die Listenelemente paarweise zugeordnet. Andernfalls wird nur das erste Listenelement verwendet.

Hinweise

Der Indexoperator kann nicht zur Extraktion von Elementen aus Listen angewandt werden. Verwenden Sie hierzu den Listenelementoperator.

Beim Zugriff auf zweidimensionale Datensätze können Sie den Werteindexoperator und den Indexoperator kombinieren (hybrider Index).

 

Die folgende Tabelle führt alle möglichen Kombinationen des Indexoperators mit Ausnahme der hybriden Fälle auf:

Datenreihe[Einzelwert]

Entnimmt den Wert mit der in Einzelwert angegebenen Nummer aus der Datenreihe. Das Ergebnis ist ein Einzelwert.

Datenreihe[von, bis]

Entnimmt die im Bereich von, bis liegenden Werte aus der Datenreihe. Das Ergebnis ist eine Datenreihe.

Datenreihe[Reihe]

Entnimmt die in Reihe angegebenen Werte aus der Datenreihe. Das Ergebnis ist eine Datenreihe.

Datenmatrix[Einzelwert]

Entnimmt die Spalte mit der in Einzelwert angegebenen Nummer aus der Datenmatrix. Das Ergebnis ist eine Datenreihe.

Datenmatrix[von, bis]

Entnimmt die im Bereich von, bis liegenden Spalten aus der Datenmatrix. Das Ergebnis ist eine Datenmatrix.

Datenmatrix[Reihe]

Entnimmt die in Reihe angegebenen Spalten aus der Datenmatrix. Das Ergebnis ist eine Datenmatrix.

Datenmatrix[ ][Einzelwert]

Entnimmt die Zeile mit der in Einzelwert angegebenen Nummer aus der Datenmatrix. Das Ergebnis ist eine Datenreihe.

Datenmatrix[ ][von, bis]

Entnimmt die im Bereich von, bis liegenden Zeilen aus dem Datenmatrix. Das Ergebnis ist eine Datenmatrix.

Datenmatrix[ ][Reihe]

Entnimmt die in Reihe angegebenen Zeilen aus der Datenmatrix. Das Ergebnis ist eine Datenmatrix.

Datenmatrix[Einzelwert1][Einzelwert2]

Entnimmt einen Wert aus der mit Einzelwert1 angegebenen Spalte und mit Einzelwert2 angegebenen Zeile aus der Datenmatrix. Das Ergebnis ist ein Einzelwert.

Datenmatrix[Einzelwert][von, bis]

Entnimmt die im Bereich von, bis liegenden Werte aus der in Einzelwert angegebenen Spalte aus der Datenmatrix. Das Ergebnis ist eine Datenreihe.

Datenmatrix[Einzelwert][Reihe]

Entnimmt die in Reihe angegebenen Werte aus der in Einzelwert angegebenen Spalte aus der Datenmatrix. Das Ergebnis ist eine Datenreihe.

Datenmatrix[von, bis][Einzelwert]

Entnimmt den in Einzelwert angegebenen Wert aus den im Bereich von, bis liegenden Spalten aus der Datenmatrix. Das Ergebnis ist eine Datenreihe.

Datenmatrix[von1, bis1][von2, bis2]

Entnimmt die im Bereich von2,bis2 liegenden Zeilen aus den im Bereich von1,bis1 liegenden Spalten aus der Datenmatrix. Das Ergebnis ist eine Datenmatrix.

Datenmatrix[von, bis][Reihe]

Entnimmt die in Reihe aufgeführten Zeilen aus den im Bereich von, bis liegenden Spalten aus der Datenmatrix. Das Ergebnis ist eine Datenmatrix.

Datenmatrix[Reihe][Einzelwert]

Entnimmt den in Einzelwert angegebenen Wert aus den in Reihe aufgeführten Spalten aus der Datenmatrix. Das Ergebnis ist eine Datenreihe.

Datenmatrix[Reihe][von, bis]

Entnimmt die im Bereich von, bis liegenden Zeilen aus den in Reihe aufgeführten Spalten aus der Datenmatrix. Das Ergebnis ist eine Datenmatrix.

Datenmatrix[Reihe1][Reihe2]

Entnimmt die in Reihe2 aufgeführten Zeilen aus den in Reihe1 aufgeführten Spalten aus der Datenmatrix. Das Ergebnis ist eine Datenmatrix.

Datenmatrix[Matrix]

Entnimmt die Werte mit den in Matrix aufgeführten Spalten- und Zeilenindizes aus der Datenmatrix. Das Ergebnis ist eine Datenreihe.

Signal[Einzelwert]

Entnimmt den Y-Wert mit der in Einzelwert angegebenen Nummer aus dem Signal. Das Ergebnis ist ein Einzelwert.

Signal[von, bis]

Entnimmt die im Bereich von, bis liegenden Punkte aus dem Signal. Das Ergebnis ist ein Signal.

Signal[Reihe]

Entnimmt die in Reihe angegebenen Punkte aus dem Signal. Das Ergebnis ist ein Signal.

Signalreihe[Einzelwert]

Entnimmt das Signal mit der in Einzelwert angegebenen Nummer aus der Signalreihe. Das Ergebnis ist ein Signal.

Signalreihe[von, bis]

Entnimmt die im Bereich von, bis liegenden Signale aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[Reihe]

Entnimmt die in Reihe angegebenen Signale aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[ ][Einzelwert]

Entnimmt alle Werte mit der in Einzelwert angegebenen Nummer aus der Signalreihe. Wenn die Signalreihe eine Z-Komponente hat, dann ist Ergebnis ein Signal und ansonsten eine Datenreihe.

Signalreihe[ ][von, bis]

Entnimmt die im Bereich von, bis liegenden Werte aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[ ][Reihe]

Entnimmt die in Reihe angegebenen Werte aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[Einzelwert1][Einzelwert2]

Entnimmt den Y-Wert mit der in Einzelwert2 angegebenen Nummer aus dem in Einzelwert1 angegebenen Signal aus der Signalreihe. Das Ergebnis ist ein Einzelwert.

Signalreihe[Einzelwert][von, bis]

Entnimmt die im Bereich von, bis liegenden Werte aus dem in Einzelwert angegebenen Signal aus der Signalreihe. Das Ergebnis ist ein Signal.

Signalreihe[Einzelwert][Reihe]

Entnimmt die in Reihe angegebenen Werte aus dem in Einzelwert angegebenen Signal aus der Signalreihe. Das Ergebnis ist ein Signal.

Signalreihe[von, bis][Einzelwert]

Entnimmt die Y-Werte mit der in Einzelwert angegebenen Nummer aus den im Bereich von, bis liegenden Signalen aus der Signalreihe. Wenn die Signalreihe eine Z-Komponente hat, dann ist Ergebnis ein Signal und ansonsten eine Datenreihe.

Signalreihe[von1, bis1][von2, bis2]

Entnimmt die im Bereich von2, bis2 liegenden Punkte aus den im Bereich von1, bis1 liegenden Signalen aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[von, bis][Reihe]

Entnimmt die in Reihe aufgeführten Punkte aus den im Bereich von, bis liegenden Signalen aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[Reihe][Einzelwert]

Entnimmt die Y-Werte mit der in Einzelwert angegebenen Nummer aus den in Reihe aufgeführten Signalen aus der Signalreihe. Wenn die Signalreihe eine Z-Komponente hat, dann ist Ergebnis ein Signal und ansonsten eine Datenreihe.

Signalreihe[Reihe][von, bis]

Entnimmt die im Bereich von, bis liegenden Punkte aus den in Reihe aufgeführten Signalen aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[Reihe1][Reihe2]

Entnimmt die in Reihe2 aufgeführten Punkte aus den in Reihe1 aufgeführten Signalen aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[Matrix]

Entnimmt die Punkte mit den in Matrix aufgeführten Spalten- und Zeilenindizes aus der Signalreihe. Das Ergebnis ist eine Raumkurve.

Raumkurve[Einzelwert]

Entnimmt den Y-Wert mit der in Einzelwert angegebenen Nummer aus der Raumkurve.

Raumkurve[von, bis]

Entnimmt die im Bereich von, bis liegenden Punkte aus der Raumkurve. Das Ergebnis ist eine Raumkurve.

Raumkurve[Reihe]

Entnimmt die in Reihe angegebenen Punkte aus der Raumkurve. Das Ergebnis ist eine Raumkurve.

Die folgende Tabelle führt alle möglichen Kombinationen auf des Werteindexoperators mit Ausnahme der hybriden Fälle auf:

Signal[[Einzelwert]]

Entnimmt den Y-Wert mit dem in Einzelwert angegebenen X-Wert aus dem Signal. Das Ergebnis ist ein Einzelwert.

Signal[[von, bis]]

Entnimmt die im X-Bereich von, bis liegenden Punkte aus dem Signal. Das Ergebnis ist ein Signal.

Signal[[Reihe]]

Entnimmt die Punkte mit den in Reihe angegebenen X-Werten aus dem Signal. Das Ergebnis ist ein Signal.

Signalreihe[[Einzelwert]]

Entnimmt das Signal mit dem in Einzelwert angegebenen Z-Wert aus der Signalreihe. Das Ergebnis ist ein Signal.

Signalreihe[[von, bis]]

Entnimmt die im Z-Bereich von, bis liegenden Signale aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[[Reihe]]

Entnimmt die Signale mit den in Reihe angegebenen Z-Werten aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[[ ]][[Einzelwert]]

Entnimmt alle Y-Werte mit X-Wert Einzelwert aus der Signalreihe. Wenn die Signalreihe eine Z-Komponente hat, dann ist Ergebnis ein Signal und ansonsten eine Datenreihe.

Signalreihe[[ ]][[von, bis]]

Entnimmt die im X-Bereich von, bis liegenden Werte aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[[ ]][[Reihe]]

Entnimmt die Werte mit den in Reihe angegebenen X-Werten aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[[Einzelwert1]][[Einzelwert2]]

Entnimmt den Y-Wert dem in Einzelwert2 angegebenen X-Wert aus dem Signal mit dem in Einzelwert1 angegebenen Z-Wert aus der Signalreihe. Das Ergebnis ist ein Einzelwert.

Signalreihe[[Einzelwert]][[von, bis]]

Entnimmt die im X-Bereich von, bis liegenden Werte aus dem Signal mit Z-Wert in Einzelwert aus der Signalreihe. Das Ergebnis ist ein Signal.

Signalreihe[[Einzelwert]][[Reihe]]

Entnimmt die Punkte mit den in Reihe angegebenen X-Werten aus dem Signal mit dem in Einzelwert angegebenen Z-Wert aus der Signalreihe. Das Ergebnis ist ein Signal.

Signalreihe[[von, bis]][[Einzelwert]]

Entnimmt die Y-Werte mit X-Wert Einzelwert aus den im Z-Bereich von, bis liegenden Signalen aus der Signalreihe. Wenn die Signalreihe eine Z-Komponente hat, dann ist Ergebnis ein Signal und ansonsten eine Datenreihe.

Signalreihe[[von1, bis1]][[von2, bis2]]

Entnimmt die im X-Bereich von2,bis2 liegenden Punkte aus den im Z-Bereich von1,bis1 liegenden Signalen aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[[von, bis]][[Reihe]]

Entnimmt die Punkte mit den in Reihe aufgeführten X-Werten aus den im Z-Bereich von, bis liegenden Signalen aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[[Reihe]][[Einzelwert]]

Entnimmt die Y-Werte mit X-Wert Einzelwert aus den Signalen mit den in Reihe aufgeführten Z-Werten aus der Signalreihe. Wenn die Signalreihe eine Z-Komponente hat, dann ist Ergebnis ein Signal und ansonsten eine Datenreihe.

Signalreihe[[Reihe]][[von, bis]]

Entnimmt die im X-Bereich von, bis liegenden Punkte aus den Signalen mit den in Reihe aufgeführten Z-Werten aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Signalreihe[[Reihe1]][[Reihe2]]

Entnimmt die Punkte mit den in Reihe2 aufgeführten X-Werten aus den Signalen mit den in Reihe1 aufgeführten Z-Werten aus der Signalreihe. Das Ergebnis ist eine Signalreihe.

Raumkurve[[Einzelwert]]

Entnimmt den Y-Wert mit dem in Einzelwert angegebenen X-Wert aus der Raumkurve. Das Ergebnis ist ein Einzelwert.

Raumkurve[[von, bis]]

Entnimmt die im X-Bereich von, bis liegenden Punkte aus der Raumkurve. Das Ergebnis ist eine Raumkurve.

Raumkurve[[Reihe]]

Entnimmt die Punkte mit den in Reihe angegebenen X-Werten aus der Raumkurve. Das Ergebnis ist eine Raumkurve.

Verfügbarkeit

FlexPro View, Basic, Professional, Developer Suite

Beispiele

Datenreihe[0n]

Entnimmt das erste Element aus einer Datenreihe.

Datenreihe[-1n]

Entnimmt das letzte Element aus einer Datenreihe.

Datenreihe[100n, -1n] oder Datenreihe[100n, Empty]

Entnimmt alle Werte ab dem 101. Wert aus einer Datenreihe.

Datenreihe[0n, 100n] oder Datenreihe[Empty, 100n]

Entnimmt die ersten 101 Werte aus einer Datenreihe.

Signal[(NumberOfRows(Signal) / 2, 0n, 2n)]

Entnimmt jeden zweiten Punkt aus einem Signal.

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

Kehrt die Reihenfolge aller Punkte eines Signals um.

Signalreihe[Sort(Signalreihe, SORT_Z + SORT_INDEX)]

Sortiert eine Signalreihe so um, dass die Z-Komponente aufsteigend wird.

Datenmatrix[ ][0n]

Entnimmt die erste Zeile aus einer Datenmatrix.

Datenreihe[2 Pi]

Entnimmt das siebte Element aus einer Datenreihe weil die Einheit Pi die SI-Dimension 1 hat und weil 2 Pi transformiert auf die Einheit 1 den Wert 6.2831853 und abgerundet 6 ergibt.

Datenmatrix[{ {1, 0}, {0, 1} }]

Entnimmt zwei Werte aus einer Datenmatrix. Entspricht {  Datenmatrix[1][0], Datenmatrix[0][1] }.

 

Siehe auch

Indizierte Zuweisung

Artikel teilen oder als Email versenden:

Diese Beiträge könnten Sie ebenfalls interessieren