Hallo Gerd & danke für die Antwort.
ich fang mal hinten an:
Zitat: - Warum willst du diese riesige Datei erneut einlesen, wenn du nur ein paar Parameter (diese "Adjuster") anpassen willst???
Es geht "nur" darum eine Möglichkeit zu schaffen, sich während des laufenden Versuchs die bereits aufgezeichneten Daten anzuschauen und so langzeittrends auszumachen. Das Hineinzoomen in bestimmte Zeitabschnitte wäre ein "nice to have", ist jedoch kein muss. (Die Adjuster sind gerade nur da um Graphen, die auf einer Achse dargestellt werden, nahe aneinander zu bringen).
Zitat:- Ich finde es auch problematisch, wenn zwei Anwendungen (oder Funktionen in einer Anwendung) parallel auf dieselbe Datei zugreifen wollen…
Ich habe noch keine Erfahrung damit, glaube Dir das aber gerne.
Zitat:- Wieso verwendest du nicht TDMS-Dateien? Die sind für solche Sachen auch sehr gut geeignet?
Mein Job ist eine bestehende Anwendung (ohne Dokumentation) zu modifizieren und ich tue mich bereits reichlich schgwer damit. In dem bestehden VI, sowie in vielen weiteren noch zu modifizierenden Anwendungen wird mit .txt Dateien gearbeitet. Nach der Aufzeichnung werden die .txt-Datein in MATLAB weiter prozessiert. Daher wird es vermutlich erstmal bei .txt bleiben. (Nur mal weil neugierig: Liessen sich TDMS Datei später in .txt konvertieren?)
Zitat:- Als "schwierig" stufe ich hier nicht die eigentliche Dateioperation ein, sondern das nachfolgende Umwandeln von Text nach 2D-DBL-Array: hier wird massiv Speicher belegt und CPU beansprucht. Hier besser mit kleineren Datenblöcken arbeiten.
Klingt sinnvoll. Für die Umsetzung bräuchte ich jedoch noch weitere Instruktionen.
Zitat:Bessere Lösung: lies doch einfach erst die ersten 3 Zeilen aus der Datei und danach mit einem zweiten ReadTextFile die nächsten Zeilen. Schon hast du dir eine resourcenfressende DeleteFromArray-Funktion gespart…
Gerne werde ich diesen Ansatz umsetzen. Allerdings habe ich ihn noch nicht so ganz verstanden. Die ersten drei Zeilen werden nur raus gelöscht, da sie sonst als Nullen im Graph dargestellt werden -> dies zerschießt mir dann in den Plots die Autoscale-Funktion. Könntest du mir noch einmal näher beschreiben, wie du dir das vorstellst?
Ich fasse meine gesammelten Ansätze zum Reduzieren des Aufwands für CPU/RAM mal zusamm´:
- Andere Bausteine/Funktionen zum Einlesen verwenden
- Einlesen aus der Datei von nur jedem 2.-200. Sample (bzw. Zeile)
- Nicht alle Spalten einlesen. Das .txt Dokument enthält momentan 26 per Tab getrennte Spalten, benötigt werden jedoch "nur" neun.
- Einlesen der Datei komplett weglassen und dafür einen neuen separaten Graphen im Main VI erstellen , in dem "Live" nur jedes X te Sample angezeigt wird. Dieser Graph wäre dann so auszulegen, dass die Historienlänge = Versuchsdauer*Samplerate/Faktor entspricht. Sind Historienlängen von 100.000 Samples ok?
Welchen Ansatz sollte ich verfolgen?
Und abschließend würde mich nochmal interessieren, wann genau verwendet man Verlaufsgraphen und wann X-Y Diagramme. Gibt es einen grundlegenden Unterschied (auch in Bezug auf CPU/RAM)?
Danke Dir!