Arrays und Schleifen

SupportCommunity FPScript Arrays und Schleifen

Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
  • Autor
    Beiträge
  • #12480
    Markus KlamkeMarkus Klamke
    Mitglied

    Hallo

    1. Ist es möglich aus jeweils dem i-ten Element von jedem Datensatz je einen neuen Datensatz zu erzeugen?
      Bsp.:
      Erstellte Datensätze
      Datensatz 1 : (1,4,7)
      Datensatz 2 : (2,5,8)
      Datensatz 3 : (3,6,9)

      Daraus würde ich gern mit einer Schleife diese Datensätze erstellen. Also das jeweils die ersten Elemente der Ausgangsdatensätze in einem neuen Datensatz stehen.

      Datensatz 1. Element (1,2,3)
      Datensatz 2. Element (4,5,6)
      Datensatz 3. Element (7,8,9)

    2. Und als weitere Aufgabe würde ich gern aus diesen Datensätzen und einem weiteren Datensatz Signale erstellen.

      Bsp.:

      Datensatz 1. Element (1,2,3)
      Datensatz 2. Element (4,5,6)
      Datensatz 3. Element (7,8,9)

      Datensatz Signal (10,20,30)

      Daraus möchte ich 3 Signale erstellen nach der Art

      Signal 1
      (10,1)
      (10,2)
      (10,3)

      Signal 2
      (20,4)
      (20,5)
      (20,6)

      Signal 3
      (30,7)
      (30,8)
      (30,9)

      Können Sie mir bei diesen Aufgaben helfen?

    #8150
    Markus KlamkeMarkus Klamke
    Mitglied

    Hallo

    1. Ist es möglich aus jeweils dem i-ten Element von jedem Datensatz je einen neuen Datensatz zu erzeugen?
      Bsp.:
      Erstellte Datensätze
      Datensatz 1 : (1,4,7)
      Datensatz 2 : (2,5,8)
      Datensatz 3 : (3,6,9)

      Daraus würde ich gern mit einer Schleife diese Datensätze erstellen. Also das jeweils die ersten Elemente der Ausgangsdatensätze in einem neuen Datensatz stehen.

      Datensatz 1. Element (1,2,3)
      Datensatz 2. Element (4,5,6)
      Datensatz 3. Element (7,8,9)

    2. Und als weitere Aufgabe würde ich gern aus diesen Datensätzen und einem weiteren Datensatz Signale erstellen.

      Bsp.:

      Datensatz 1. Element (1,2,3)
      Datensatz 2. Element (4,5,6)
      Datensatz 3. Element (7,8,9)

      Datensatz Signal (10,20,30)

      Daraus möchte ich 3 Signale erstellen nach der Art

      Signal 1
      (10,1)
      (10,2)
      (10,3)

      Signal 2
      (20,4)
      (20,5)
      (20,6)

      Signal 3
      (30,7)
      (30,8)
      (30,9)

      Können Sie mir bei diesen Aufgaben helfen?

    #8780
    Bernhard KantzBernhard Kantz
    Moderator

    First you should be aware that each formula can return only one result (besides if you are using a list result).
    The shortest way to solve the first issue is something like this (we assume that all datasets have the same length):

    
    Result = TransposeMatrix({ Dataset1, Dataset2, Dataset3})
    

    The result can than be found in Result[0], Result[1] and Result[2]. If you only need a specific index you could proceed like this:
    Create a new formula called ‘DataSetFromIndex’:

    
    Arguments Datasets, Idx
    Dim MaxLen, Result
    
    //	To simplify things we assume that all datasets have the same length
    MaxLen = NumberOfRows($Datasets[0]$)
    
    //	pre-allocate the result
    Result = 0. # NumberOfRows(Datasets)
    
    For Each Row i In Datasets Do
    	Result = ($Datasets$)[Idx]
    end	
    
    Result
    

    Then call it from another formula like this (for the index 1):

    DatasetFromIndex({ "Dataset1", "Dataset2", "Dataset3" }, 1)

    The second issue could be solved like this (assume Sig for your Signal, to avoid name clashes with the built-in function Signal):

    Signal(Dataset1, Sig[0] # NumberOfRows(Dataset1))
    Signal(Dataset2, Sig[1] # NumberOfRows(Dataset2))
    ...
    

    Support
    support@weisang.com

Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.