Wie flatten (Umformen zu 1D) ein array beliebiger dimension in Labview

Lassen ein array beliebiger dimension (2 oder 3 in meinem Fall).
Wie kann ich das reduzieren (Umformen zu 1D) dieses array ohne im Voraus zu wissen, die Anzahl der Dimensionen ?

Wenn ich wusste, dass die Anzahl der Dimensionen, ich könnte leicht erhalten, die Gesamtzahl der Elemente (durch eine Kombination von "Array-Größe" - Funktion) und dann Umformen von A bis 1D mit dieser Nummer.
Leider, die "Array-Größe" - Funktion selbst gibt ein array zurück, dessen Anzahl der Elemente ist gleich der Anzahl der Dimensionen, die bringt uns zurück zu dem ursprünglichen problem.

Habe ich "löste" das problem, indem Sie eine Funktion erstellen, (VI), das gibt die gesamte Anzahl der Elemente einer 3D-array (die häufigste Art von arrays, die ich erwarten, zu behandeln), so dass ich geben kann das als ein argument zu der Reshape-Funktion. Problem: es kann nicht sein, dass ein 2D-array, obwohl der Algorithmus funktionieren würde das mit einem array ! (es scheint, dass in Labview, Arrays Kontrollen sind streng, was die Zahl der Dimensionen, die Sie annehmen, was nicht der Fall in Matlab zum Beispiel).

Schöne Lösung wäre ein einfacher Weg, um zu multiplizieren alle Elemente des Arrays gegeben, die von "Array-Größe", um schnell die Gesamtzahl der Elemente, ohne zu müssen, wickeln Sie diese in ein sub-VI.
Insgesamt gibt es nicht eine einfache und effiziente Möglichkeit, dieses problem zu lösen ? Es sollte ziemlich standard..

InformationsquelleAutor calvin tiger | 2012-01-13
Schreibe einen Kommentar