Daten in Echtzeit auslesen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo,
ich habe eine (hoffentlich) kleine Frage:
Ich schreibe kontinuierlich Daten in eine Textdatei, möchte aber, daß diese Daten gleichzeitig in Echtzeit graphisch ausgegeben werden. Das habe ich theoretisch mit drawnow schon hinbekommen. Allerdings glaube ich, daß bei jedem neuen Meßwert die Textdatei vollständig neu eingelesen wird. Das könnte u.U. später aufgrund der Größe problematisch werden. Ist es möglich, nur den jeweils letzten Wert der Textdatei auszulesen und quasi an den Graphen anzufügen?
Der glaub ich relevante Auszug meines bisherigen Codes ist:
senstxt = fopen('sensor.txt', 'w+');
tic
try,
while true,
%%% DATEN SENSOR 1 ANFANG
temperature = fread(s1,2,'uint8');
fprintf(senstxt, '%6.2f [mm] %6.3f\n', [/mm] [toc; temperature]);
[x,y] = textread('sensor.txt','%f %f');
plot(x,y); drawnow; grid on; xlabel('time [s]'); ylabel('temp [°C]');
%%% DATEN SENSOR 1 ENDE
end;
catch
s1
end;
|
|
|
|
Hallo,
da du diese Daten selber schreibst, müsstest du sie ja nicht nachher nochmal lesen sondern sie gleich verwenden. Falls du aber Gründe dafür hast, dann könnte dir der Befehl fseek weiterhelfen. Mit diesem Befehl kannst du die Position innerhalb der Datei setzen.
Auf jeden Fall würde ich beim Plotten immer nur die aktuellen Punkte und nicht alle plotten.
Gruß
Martin
|
|
|
|