Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
moin,
ich hab mal wieder in kleines Problem.
Ich möchte, um mein Programm schneller zu bekommen, meinen Graphen nur jeden 2. Wert schreiben lassen.
Ich habe eine schleife, die in jedem Durchlauf ein Array aktualisiert. Ich möchte jetzt, dass nur jeder 2. Wert des Arrays in den Graphen geschrieben wird. Wenn ich zwischen dem Array und dem Graphen eine Abfrage mache, die Modulo 2 mit dem Schleifencounter rechnet und nur bei Rest 0 die Daten weitergibt, habe ich das problem, dass ich auch in dem anderen Fall irgendwas aus dem Case rausleiten muss. Wenn ich ihm da eine 0 gebe habe ich mein Ziel verfehlt, weil der Graph dann jede 2. runde eine 0 plottet und nicht garnichts plottet.
Alternativ könnte ich auch das Array nur jeden 2. Schleifendurchlauf aktualisieren, allerdings habe ich da das gleiche problem.
Gibt es einen NOP-Befehl oder so mit dem man einfach garnichts machen lässt?
Danke
Peer
Ich bin morgens nur so müde, weil ich nachts Batman bin ^^
Vielleicht eine blöde Frage weil ich den Aufbau deines Programms nicht kenne. Kannst du den Graphen nicht direkt mit in den Case packen? Das würde dein Problem doch lösen oder?
Wäre es eventuell auch eine Option alle Werte im Graph darzustellen, diese aber nur jeden zweiten Durchlauf zu aktualisieren. Habe ich selbst noch nicht ausprobiert könnte aber evt. gehen indem man die neuen Werte an die bisherige Historie anhängt!?
Der Graph ist schon in einem Case. Ich schreibe den Graphen nur neu, wenn ich 40 neue Werte gesammelt habe. Das Array ist dabei allerdings genauso groß und das macht den Rechner fertig. Ich versuche mal Global nur alle 2 Werte überhaupt zu beachten.
Ich bin morgens nur so müde, weil ich nachts Batman bin ^^
Das Problem ist nur, dass mögliche Ausreisser verloren gehen. Ich schlage vor, von einer geeigneten Anzahl von Array-Elementen, jeweils Mittelwet, Minimum und Maximum zu berechnen. Diese drei Kurven können dann schnell dargestellt werden, ohne wesentliche Information zu verlieren. Und Rechnen geht viel schneller als viele Daten auf wenigen Pixeln darzustellen.
Ich kann mir das Programm nicht hundert-pro vorstellen, aber kannst du nicht versuchen, eine Rückkopplung / einen Speicher für den zweiten Fall zu bilden, und den (statt der 0, die nicht sinnvoll ist) zweimal zu plotten? Oder kannst du das gesamte Array (40 Werte) nehmen, und dann jeden zweiten Wert mit "Array dezimieren" rausholen?
Bei Unkenntnis deines Programms fallen mir nur ganz hässliche Ideen ein, aber Autoscale abdrehen, und Glättung abdrehen hat mir auch schon mal geholfen.
Grüße,
Birgit
[edit: Und da haben wir uns überschnitten. Decimate kann man gut und gerne zweimal anwenden - dann aber dazwischen transponieren.)
Ich möchte ja grade nicht 2 mal plotten, sondern den 2. Wert einfach ignorieren.
Aber ich habe jetzt schon eine Lösung gefunden. Ich habe einfach noch ne Whileschleife drumgeschrieben und mit dem Schleifencounter gehe ich jetzt einfach nur jeden 2. Durchlauf in meine innere Schleife rein.
Danke euch!
Ich bin morgens nur so müde, weil ich nachts Batman bin ^^
27.04.2011, 15:36 (Dieser Beitrag wurde zuletzt bearbeitet: 27.04.2011 15:45 von Lucki.)
(27.04.2011 15:01 )Peer schrieb: Aber ich habe jetzt schon eine Lösung gefunden. Ich habe einfach noch ne Whileschleife drumgeschrieben und mit dem Schleifencounter gehe ich jetzt einfach nur jeden 2. Durchlauf in meine innere Schleife rein.
Das sieht ganz danach aus, dass der entscheidende Tipp "Array dezimieren" von BNT untergegangen ist. (BNT ist allerdings selbst schuld - warum bringt er außer dem eigentlichen Tip noch Probleme mit Ausreißern&Co in die Diskussion, nach denen gar nicht gefragt war )
28.04.2011, 08:13 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2011 08:13 von GerdW.)
Zitat:Vielleicht eine blöde Frage weil ich den Aufbau deines Programms nicht kenne.
Zitat:Ich kann mir das Programm nicht hundert-pro vorstellen
Du könntest dir und anderen viel Arbeit sparen (oder diese zumindest erleichtern), wenn du entweder in deinem Original-Thread geblieben wärest oder zumindest einen Link darauf angeboten hättest...
Ja das stimmt entschuldige bitte, aber es hatte ja in erster Linie nichts damit zu tun, wie ich einen Graphen mit der Maus male, sondern, wie ich ein Array dezimiere.
Ich bin morgens nur so müde, weil ich nachts Batman bin ^^