Hallo ich bin es mal wieder,
war jetzt eine Woche auf einer Fortbildung (leider net LabView), dementsprechend melde ich mich erst jetzt wieder....!
Leider scheine ich mich bei der Weiterbearbeitung meines Programms ziemlich dämlich anzustellen. Die Problemstellung aus den vorherigen Beiträgen will ich einfach weiter führen: Jetzt, da meine Arrays in Elemente =0 und ungleich =0 sortiert sind, will ich mit den ungleich 0 Elementen weitermachen. Und zwar will ich das so handhaben, dass sämtliche Elemente die nicht null sind und aufeinanderfolgende Indices haben (also zB. 3,4,5 und 17,18,19) zusammen in ein Array geschrieben werden. Ich habe das versucht mit zwei parallelen For-schleifen hinzukriegen, aber irgendwie will mir das nicht gelingen.
Bitte helft mir nochmal, für euch ist das doch bestimmt kein Problem...!
Diesmal regnerische Grüße aus dem Frankenland
Rob
Hm, so ganz versteh ich nicht was du machen willst...
Willst du das so haben? Indices != 0: 0 4 6 7 12 14 15 -> 6 7 14 15 ???
Gib doch mal ein kleines Zahlen-Beispiel.
Hi Kai(man)!
Es ist so, dass alle fortlaufenden Indices deren Arrayelemente nicht null sind Signale darstellen die zu einem Tropfen gehören. Wenn jetzt wieder zwischen Arrayelementen mit Werten ungleich 0 Arrayelemente auftauchen, die den Wert null enthalten, bedeutet das für mich, dass diese nicht mehr zum gleichen Tropfen gehören. Ich will aber ausschließlich Signale von jeweils einem Tropfen zusammenzählen. Dementsprechend sollen nun Arrayelemente summiert werden, deren Indices fortlaufend sind und nicht null sind.
Angenommenenfalls es sind insgesamt 53 x 23 Werte ursprünglich. Von denen schmeiss ich alle raus die null sind, dann bleiben mir noch beispielsweise 7 Arrayelemente übrig. Diese entsprechen im ursprünglichen Array den Indices 4,5 und 6, sowie den Indices 21,22,23 und 24. Jetzt will ich diese Elemente, also die Arrayelemente mit den zugehörigen Indices summieren. Ganz am Ende sollen in dem Beispiel 2 Zahlen rauskommen: die Summe der Arrayelemente mit dem Index 4, 5, und 6, sowie eine zweite Summe mit den Arrayelemente mit dem Index 21,22,23 und 24.
Bin begeistert wie schnell du geantwortet hast. Isses klar was ich meine?
Grüße
Rob
Hallo Fliecha,
warum dann diese ganze Sortierarbeit? Hättest du deine Aufgabe nicht von vornherein besser beschreiben können?
Ich würde eine FOR-Loop nehmen und dein (Gesamt-)Array per Autoindexing durchgehen. Dazu noch ein Shiftregister, mit dem du die fortlaufenden Array-Elemente zählst und eines zum Aufsummieren der Werte. Wenn eine Null im "Datenstrom" auftaucht, wird der Zähler kontrolliert - und wenn größer 1 (mehr als ein Wert ohne Null dazwischen) die Summe der letzten Werte in die Ausgabe geschrieben. Außerdem wird mit jeder Null im Datenstrom die Summe wieder auf Null zurückgesetzt...
Hallo Rob,
bin heut morgen noch nicht so ganz auf der Höhe...:wacko:Hab trotzdem mal was zusammen geklickt.
Aber wahrscheinlich hat GerdW recht, erledige doch einfach alles in einem Abwasch...
Hab bis jetzt nur das finden vom Anfang und Ende eines zusammenhängenden Bereichs realisiert - und das wahrscheinlich auch sehr kompliziert...Das Aufsummieren musst du dir noch selber überlegen.
Vllt. hilft es trotzdem weiter.
Gruß, Kai
Hi liebe Helfer,
@Gerd: hm, wahrscheinlich hast du Recht und ich hätte das von vornherein besser beschreiben können. Soviel Weitsicht hatte ich leider nicht. Mir geht es natürlich in erster Linie darum die Sachen selbst zu verstehen und nicht etwa, dass mir einer von euch ein fertiges Programm postet. Auch wenn ich das überragend finde, dass ihr euch mit den Problemen anderer herumschlagt.
Dementsprechend hab ich etz erstmal selbst versucht weiter zu machen und ich muss sagen, soooooo schlecht schaut es net aus. Ich habe mein Problem mit einer "While"-Schleife gelöst und es funktioniert.
Dummerweise hab ich gleich am Anfang einen Bock gebaut.... Ich habe insgesamt 104 Bilder die aus jeweils 52x23 Pixeln bestehen. Die werden auch alle reingeladen nur dummerweise ab einem bestimmten Punkt des Programms mache ich alle weiteren Rechenschritte nur noch mit einem einzelnen Bild. Das blöde ist nun, dass ich anscheind nicht in der Lage bin, das eigentlich fertige VI auf die Verwendung aller Bilder umzuschreiben. Ganz speziell gesagt scheitert es wieder an dem Sortieren der Elemente in Null und nicht Null Teile.
Ich habe versucht, dass von Lucki beschriebene Vi "Nullelemente" für mich nachzubauen, aber irgendwie kriege ich es nicht hin. Ich verstehe nicht, was da in die Schieberegister links eingeht. "Mein" Array ist ja nur der eine Part, der praktisch die =0 Frage erfährt und die Case Struktur entscheidet. Das andere sind laut Lucki Initialisierungen. Und da kommt dann der Part den ich nicht checke.
Am Besten ich hänge mal mein fertiges VI dran, das klappt alles schon super, aber halt wie gesagt nur für ein einzelnes Bild.
Wäre der Wahnsinn, wenn sich einer von euch kurz die Zeit nehmen könnte und mal einen Blick drauf wirft.
Vielen Dank an alle Beteiligten
Beste Grüße
Rob
ah Vi vergessen, das kommt hier noch...!
Danke danke
Grüße
Hab einmal durchgescrollt...
am Schluss berechnest du Mittelwert und Std.Abw. ... dafür gibts fertige VI's.
Sonst ists mir zu unübersichtlich.
achja... Datenfluss -> du brauchst die Sequenzen eigentlich nicht.
Gruß SeBa
Hi Seba,
das Argument mit der Unübersichtlichkeit sehe ich ein....! Könnte mir trotzdem nochmal jemand das Vi "Nullelemente" von Lucki erklären. Wo geht mein Array rein und was schließe ich an die Schieberegister an? Das ist doch sehr klein und für euch bestimmt auf den ersten Blick ersichtlich...!
Danke und Gruß
Rob