WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Plot über Zeit aktualisieren

 

yamamoto
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 06.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2012, 23:29     Titel: Plot über Zeit aktualisieren
  Antworten mit Zitat      
Guten Abend,

ich kämfe gerade mit dem Problem, dass ich mit einem Timer eine Funktion regelmäßig ausführe, in der jedes mal neue Daten anfallen. In der selben Funktion will ich die Daten dann in einem Plot darstellen.

soweit sieht mein code so aus:
Code:
function timer_test( )
global h1 i
i=1;

t1 = timer('TimerFcn', @tmr_clbk, 'ExecutionMode', 'fixedDelay', 'Period', 1.0);

figure()
h1 = plot(NaN)
 
start(t1)
end

function tmr_clbk(t1, event)
global h1 i    
set(h1,'YData', i)
drawnow
i = i+1;
end


Hier wird also i ein mal pro Sekunde hochgezählt und dann geplottet.

Ich würde gerne in dem plot auf der x-Achse jedes neue i einen Schritt rechts plotten und den alten Wert auch im plot lassen, so dass man irgendwann einen Verlauf sehen kann.

Auserdem sollen insgesammt z.B. 20 Werte geplottet werden. Jeder neue Wert soll rechts hinzukommen und der älteste Wert links verschwinden. Der ganze Plot sollte sich dann quasi mit jedem neuen Wert nach links bewegen.

Habt iht eine Idee wie man sowas hinkriegt?
Ich bin für jeden Denkanstoß dankbar.
Private Nachricht senden Benutzer-Profile anzeigen


yamamoto
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 06.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2012, 13:58     Titel:
  Antworten mit Zitat      
Also ich habs jetzt so gelöst:
Code:
function timer_test( )
global h1 i t1 y
i=1;
y = zeros(10,1);

t1 = timer('TimerFcn', @tmr_clbk, 'ExecutionMode', 'fixedDelay', 'Period', 1.0);

figure()
subplot(2,1,1); h1 = plot(NaN); set(h1,'MarkerSize', 10);
 
start(t1)
end

function tmr_clbk(t1, event)
global h1 i y

y(1:end-1) = y(2:end);
y(end) = i;

set(h1,'YData', y)
drawnow
i = i+1;
end


Vielleicht gibts eine elegantere Lösung?
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.