Deine Lösung mag dir auf den ersten Blick elegant vorkommen, aber sie ist weder die schnellste noch die resourcen-sparsamste Lösung.
Das Problem ist das "Conditional Indexing": Du erzeugst hier ein neues Array (belegt neuen Speicher). Die Größe des Array kann der LabVIEW-Compiler aber nicht vorab festlegen. Deshalb hängt LabVIEW bei jedem "TRUE" immer ein neues Element an das schon bestehende Array an, es wird also dauernd neuer Speicher alloziert. Auch nicht gerade schnell.
Anders erklärt: Conditional Indexing entspricht (auch in der Realität) dem folgenden Source-Code (Im False-Case wird das Array einfach unverändert belassen):
Schneller ist auf jeden Fall die folgende Umsetzung:
Gruß, Jens
@Lucki:
Vorsicht, bei sehr großen Arrays geht deine Lösung schief, da der Ausgang von "Boolean to Number" eine I16-Zahl ist. Beim Addieren hast du dann schnell einen Zahlenüberlauf. Aber das lässt sich schnell beheben:
Gruß, Jens