FlexPro
HistoryBase
Ingénierie
Formation
Téléchargements
Assistance FlexPro
Connaissance
Communauté
À propos de nous
Références
Emplois
Contact général
Liste des revendeurs
Assistance FlexPro
FR
DE
EN
Porte-plaquette
Produits et solutions
Support et téléchargements
Entreprise
Magazine
Contact
Langue
MyWeisang

Paramètres du compte.

Topic

For Schleifen

Voir les messages de 5 - 1 à 5 (sur un total de 5)
  • Auteur
    Messages
  • #33376
    rax23@gmx.de
    Participant

    Versuche schon seit einigen Minuten eine For Schleife mit folgender Sturktur zum laufen zu bringen. Dabei sollen alle Werte die größer als 15 sind durch ein Fragezeichen ersetzt und jeweils der Wert vor dem Wert größer 15 und der danach. Um die ? wieder einen ordentlichen Wert zu geben sollen diese interpoliert werden. Der Datensatz besteht dabei nur aus y Werten. Das Problem ist nur das die Schleife immer direkt das i zu dem Endwert inkrementiert und in der if Schleife danach für i der letzte Platzhalter steht. Die Schleife läuft also einfach nicht von i=0 bis Endwert!

    Dim y,i

    y=ChL2_v_r_o_u.y

    For i=0 to NumberOfElements(y)-1 do

    if y[i] > 15 then
    y[i-1] = ?
    y[i] = ?
    y[i+1] = ?

    end

    end

    return InterpolateVoidValues(y)

    Auch habe ich es schon mit einer “For Each Value…In” Anweisung probiert:

    Dim y,i

    y=ChL2_v_r_o_u.y

    For Each Value i In y do

    if y[i] > 15 then
    y[i-1] = ?
    y[i] = ?
    y[i+1] = ?

    end

    end

    return InterpolateVoidValues(y)

    Aber dabei besteht genau das gleiche Problem!

    #33373
    Bernhard Kantz
    Participant

    If i is the highest index y[i+1] doesn’t exist. The highest index of the dataset is NumberOfElements(dataset) – 1.
    But in this case you should not use a for loop because this method is very slow. Instead of that you should use the FPScript function [b]ValuesAboveLevel[/b].

    support@weisang.com

    #33374
    rax23@gmx.de
    Participant

    i isn’t the highest index and y[i+1] does exist! The loop with the “For Each Values…End” function does work. But how can I work with the ValuesAboveLevel function? How do I get all elements higher than 15 replaced through a interpolated value when using the ValuesAboveLevel function?

    #33372
    rax23@gmx.de
    Participant

    Versuche schon seit einigen Minuten eine For Schleife mit folgender Sturktur zum laufen zu bringen. Dabei sollen alle Werte die größer als 15 sind durch ein Fragezeichen ersetzt und jeweils der Wert vor dem Wert größer 15 und der danach. Um die ? wieder einen ordentlichen Wert zu geben sollen diese interpoliert werden. Der Datensatz besteht dabei nur aus y Werten. Das Problem ist nur das die Schleife immer direkt das i zu dem Endwert inkrementiert und in der if Schleife danach für i der letzte Platzhalter steht. Die Schleife läuft also einfach nicht von i=0 bis Endwert!

    Dim y,i

    y=ChL2_v_r_o_u.y

    For i=0 to NumberOfElements(y)-1 do

    if y[i] > 15 then
    y[i-1] = ?
    y[i] = ?
    y[i+1] = ?

    end

    end

    return InterpolateVoidValues(y)

    Auch habe ich es schon mit einer “For Each Value…In” Anweisung probiert:

    Dim y,i

    y=ChL2_v_r_o_u.y

    For Each Value i In y do

    if y[i] > 15 then
    y[i-1] = ?
    y[i] = ?
    y[i+1] = ?

    end

    end

    return InterpolateVoidValues(y)

    Aber dabei besteht genau das gleiche Problem!

    #33375
    Bernhard Kantz
    Participant

    Use the operation [b]Set values which lie above the level to void[/b] of the [b]ValuesAboveLevel[/b] function instead of the for-loop. Then you can use the FPScript function [b]InterpolateVoidValues[/b] to interpolate the values above the level.

    Support@weisang.com

Voir les messages de 5 - 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.