Wie plot Echtzeit-Daten aus Textdatei in MATLAB
Im neu in matlab-Codierung, so dass im immer noch versuchen, um meinen Kopf um die Dinge.
Ziemlich viel im arbeiten mit interia sensoren, die die Ausgabe der sensoren Orientierung Daten alle 10ms. Im speichern kann, diese Daten in eine Textdatei, die fortlaufend aktualisiert werden.
Meine Aufgabe ist es nun zu plot dieser Daten in Echtzeit. Dies beinhaltet, kontinuierlich Zugriff auf und Lesen aus der Textdatei (alle 10ms wenn möglich) und das Diagramm dieser Daten mit Bezug auf Zeit.
Kann einer von Euch mir einige Anleitungen auf, was wäre der effektivste Weg, dies zu tun.
In diesem moment in der Zeit, die text-Datei speichert nur die Daten, die über einen parameter (die x-Koordinate des Sensors). Ich kann speichern Sie diese Daten in 2 Wege:
Methode 1: Neue Daten alle 10ms. Jeder wird gespeichert, in einer neuen Zeile.
Methode 2: ich kann die text-Datei ist nur der neueste Teil der Daten (löschen von alten Daten)
Im in der Lage, eine der folgenden Methoden verwenden.. was auch immer Sie Jungs denken, dass wäre einfacher.
Ive versucht, mit anderen 3rd-party-software zur Darstellung dieser Daten aus der text-Datei, aber Sie Schienen alle wirklich nervös und konnte nicht Lesen aus der Textdatei schnell genug.
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
MATLAB timer-Objekt helfen. Siehe zum Beispiel dieser link Mit Hilfe von MATLAB, um die Bearbeitung von Dateien in Echtzeit nach jeder Instanz eine Datei erstellt, die von einem separaten Programm.
Kann es einige sorgen in Bezug auf das gleichzeitige schreiben (Ihre anderen Prozess) und Lesen (MATLAB) zu einer einzigen Datei. Ihre situation möglicherweise besser geeignet, um eine Leitung lieber als eine Datei: Rohr vs. Temporäre Datei aber ich werde gehen Sie mit einem MATLAB-basierten Lösung für die zeitgesteuerte Datei liest und Grundstück-updates.
Ich emulierten Ihre situation und lernte ein paar Dinge:
fread
gemacht wird. Finden Sie die Problemumgehungen Arbeit mitfseek
imreadFile
- Funktion unten.fobj = open('test.dat', 'wb', 0)
.MATLAB-code unten:
Python-code zum schreiben von Daten in eine Datei, die alle ~ 10 Millisekunden:
fread
dass ich oben liest Binärdaten aus einer Datei. Diese Datei sollte nicht von Menschen lesbar mit einem Texteditor. Wenn Sie möchten, MATLAB zum Lesen von text-Dateien ersetzenfread
mitfscanf
.fscanf
erlauben würde, für die Analyse mehrere zahlen in einer Zeile. Wie zu akzeptieren, eine AntwortKönnen Sie nicht plot mit harten Echtzeit-Bedingungen, so kann es immer passieren, dass matlab findet eine 10ms timeslot. Verwenden Sie die option 2, um alle Daten.
Loslegen: Schreiben Sie eine Funktion, die nur liest die neuen Daten, die geschrieben wurde seit dem letzten Aufruf. Um dies zu erreichen, schließen Sie die Datei-handle. Es speichert die position.