Array mit Werten nach Zuständen aus zweitem Array in neue Arrays jedes Zustandes sortieren
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!
Array mit Werten nach Zuständen aus zweitem Array in neue Arrays jedes Zustandes sortieren
Hallo zusammen,
ich bin neu hier im Forum und habe noch nicht so den Überblick, falls das Thema schon mal angefragt wurde, bitte ich das zu entschuldigen, ich konnte es bisher nicht finden.
Das Ziel ist folgendes:
ein Array mit Messwerten [32,1], die laufend aktualisiert werden (etwa alle 3 sek) soll nach einem Array mit Zuständen, die nur selten geändert werden, sortiert werden.
Es soll für jeden Zustand (es gibt 6 verschiedene) ein eigenes Array, das die zugehörigen Werte enthält herauskommen.
Ich arbeite mit der Version 8.5, und die einzige Möglichkeit, die ich sehe ein Array zu bearbeiten, ist zuerst einen Index von einem (unerwünschten) Wert zu finden und dann an diesem Index das (unerwünschte) Element zu löschen. Mit der Methode konnte ich das Ziel zwar erreichen, aber nur indem ich das ganze in eine Schleife gepackt habe, die die Nebenwirkung hat, dass sie die Hauptschleife extrem verlangsamt (dauert dann 12 sek statt 3).
Gibt es keine einfachere Möglichkeit ohne Schleifen - wie in Matlab wäre es lediglich a = b ( c), um nur die Elemente von b an den Indices c in a zu speichern ? Möglicherweise geht es mit einem Formelknoten - allerdings beherrsche ich dafür die Syntax nicht um die Operation durchzuführen...
Ich bin für jede Hilfe dankbar, auch nicht ganz unerfahren, aber komme in dem Punkt einfach nicht weiter.
Gruß
Michael
Anzeige
07.01.2011, 13:37 (Dieser Beitrag wurde zuletzt bearbeitet: 08.01.2011 11:42 von jg.)
Array mit Werten nach Zuständen aus zweitem Array in neue Arrays jedes Zustandes sortieren
Hallo Mika,
1. Warum ist da ein Wait in der Schleife?
2. Ohne Schleife gehts nicht. In Matlab wird halt eine Funktion aufgerufen, die eine Schleife enthält.
3. Warum die -1000 einfügen, wenn man die Arrays in der ersten Schleife gleich zusammenbauen kann?
4. Vergleiche niemals Fließkommazahlen auf Gleichheit.
5. Die Variable i einer Schleife fängt bei 0 an. Deine Schleifen iterieren daher jede einmal zu viel.
6. Nimm für das Kriterium keine Fließkommazahlen (siehe 4.)
7. Beschränk dich bei den Messwerten auf einen Datentyp und nimm nicht irgendwo Double und später Single.
8. Hab dir mal eine Lösung angefügt.
Array mit Werten nach Zuständen aus zweitem Array in neue Arrays jedes Zustandes sortieren
Wow, Schrotti, danke erstmal für die Hilfe, das sieht schonmal sehr gut aus. Ich kann es leider gerade nicht im Messprogramm testen, ob sich die Zeit reduziert hat, gehe aber davon aus. Ich kannte die Auto-Indizierung noch nicht.
Trotzdem noch ein paar Rückfragen und Anmerkungen:
- das Wait war nur zum Test, im eigentlichen Programm hab ich es rausgeschmissen
- könntest du bitte erklären, warum man keine Fließkommazahlen für den Vergleich nehmen sollte
- gibt es noch weitere Dinge, die man nach Möglichkeit vermeiden sollte aber als Anfänger bzw. ungelernter User zu tun neigt
Array mit Werten nach Zuständen aus zweitem Array in neue Arrays jedes Zustandes sortieren
[url=http://www.google.de/search?q=vergleich+flie%C3%9Fkommazahl&ie=utf-8&oe=utf-8&aq=t&rls=org.mozillae:official&client=firefox-a#sclient=psy&hl=de&client=firefox-a&hs=ixc&rls=org.mozillae%3Aofficial&q=gleichheit+flie%C3%9Fkommazahl&aq=f&aqi=&aql=&oq=&gs_rfai=&pbx=1&fp=3cadb483bc8f8289]Google ist dein Freund[/url].
Noch ein Tipp, ja, mh, verwende SubVIs, setze Kommentare, Probleme erst auf dem Papier lösen anstatt wild drauf los zu programmieren und so weiter und so fort