-
FlexPro
- Auf einen Blick
- Features & Optionen
- Einsatzgebiete
- Alle Vorteile
- Neu in FlexPro 2021
- FlexPro gratis testen
- FlexPro View OEM Freeware
- Kaufberatung
- Login
- Language
- +49 6894 929600
- infoweisang.com
- Google Maps
- Produkte
- News
- Support
- Unternehmen
- Jobs
- Kontakt
- Login
- Language
- +49 6894 929600
- infoweisang.com
- Google Maps
ValuesInInterval in einer Schleife
- Dieses Thema hat 5 Antworten sowie 2 Teilnehmer und wurde zuletzt vor vor 9 Jahren, 3 Monaten von Stefan Wyler aktualisiert.
-
AutorBeiträge
-
August 6, 2015 um 6:35 am Uhr #12885Stefan WylerTeilnehmer
Hallo Zusammen,
Ich lese aus einem Geschwindigkeitssignal 0 – 70 km/h in 5 km/h Abschnitten den Index heraus. ValuesInInterval erlaubt für die Grenzwerte “Lower und upper Limit” nur Einzelwerte. Wie kann ich die Such enach den Indexen automatisieren?August 6, 2015 um 6:35 am Uhr #8545Stefan WylerTeilnehmerHallo Zusammen,
Ich lese aus einem Geschwindigkeitssignal 0 – 70 km/h in 5 km/h Abschnitten den Index heraus. ValuesInInterval erlaubt für die Grenzwerte “Lower und upper Limit” nur Einzelwerte. Wie kann ich die Such enach den Indexen automatisieren?August 6, 2015 um 11:31 am Uhr #9400Bernhard KantzTeilnehmerWie bereits der Titel des Eintrags andeutet, kann dies durch eine Schleife in einer FPScript-Formel automatisiert werden. Da die Datensätze der ermittelten Indizes wahrscheinlich unterschiedlich lang sein werden, sollten diese in einer Liste gesammelt werden. Das folgende Codebeispiel erzeugt eine Liste (mit Elementname der Form “15-20 km/h”) der gefundenen Indizes:
Dim val = Geschwindigkeit Dim res For lower = 0 To 70 Step 5 Do Dim upper = lower + 5 Dim idx = ValuesInInterval(val, lower, upper) res := List(String lower : "-" : String upper : " km/h", idx) End res
Hat diese Formel den Namen ‘Bereiche’ so liefert
Bereiche.["30-35 km/h"]
den Indexdatensatz zu diesem Geschwindigkeitsintervall. Alternativ kann auch
Bereiche.[6]
angegeben werden, da es sich um den 7. Eintrag handelt (der Elementenindex ist nullbasiert!).
Natürlich können die Elementnamen den eigenen Bedürfnissen angepasst werden sofern sie eindeutig sind.August 13, 2015 um 5:11 pm Uhr #9403Stefan WylerTeilnehmerDas funktioniert aber noch nicht optimal. Jetzt habe ich die einzelnen Geschwindigkeitssegmente welche mit “Aus” (Anfangsindex und Endindex) ausgelesen werden. Zur Anwendung dieser beiden Werte (die Liste hat 13 Zeilen) auf ein Beschleunigungsignal muss ich den Anfangs- und Endwert herauslesen (indexieren) aber das funktioniert nicht. Wie kann ich das Listelement weiterverarbeiten?
Dim val = v_fz
Dim res
For speed = 5 To 65 Step 5 do
Dim low = speed – 2
Dim upper = speed + 2Try
Dim idx = ValuesInInterval(val, low, upper, EVENT_INDEX, 1.5)
Dim A_F = idx[1n]*25
Dim A_L = idx[-1n]*25Catch idx
A_F = 0
A_L = 0
EndDim Aus = {A_F , A_L}
res := List(String low :”-” : String upper : “km/h”, Aus)End
resAugust 22, 2015 um 9:48 am Uhr #9405Bernhard KantzTeilnehmerDie Funktion ValuesInInterval() liefert alle Indizes deren Werte im angegebenen Intervall liegen. Falls Sie nur an der ersten Überschreitung einer minimalen bzw. maximalen Grenze interessiert sind, wäre die Funktion NextLevelCrossing() geeigneter.
In Ihrem Code greifen Sie auf den zweiten und den letzten Index der Werte im aktuell angegebenen Intervall zu und multiplizieren ihn mit 25, gibt es dafür einen speziellen Grund? Eine ausführlichere Beschreibung könnte vielleicht das Problem erhellen.September 20, 2015 um 11:57 am Uhr #9406Stefan WylerTeilnehmerMit dem Faktor 25 werden die unterschiedlichen Samplinraten vom GPS- zum Beschleunigunssignal korrigiert.
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.