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

Figure events handling während Matlab beschäftigt ist

 

dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2009, 13:14     Titel: Figure events handling während Matlab beschäftigt ist
  Antworten mit Zitat      
Hallo,

sorry erstmal für den etwas komischen Titel Smile

Mein Problem:

Ich erstelle eine Figure mit irgendeinem Plot. Anschließend wechselt das Programm in irgendeine Endlos-Schleife (oder ist irgendwie dauerhaft beschäftigt). Nun habe ich das Problem dass Events der Figure nicht ausgeführt werden (Menu Callbacks, Neu-Zeichnen). Nur die ganz fundamentalen Sachen (Schließen, Größe verändern), die mit dem Inhalt der Figure nichts zu tun haben, werden ausgeführt.

Hier mal ein Minimalbeispiel:
Code:
figure;
plot (rand(1000,2));

pause(1);

while 1
  5+3;
end


Es geht mir darum, in der Schleife nichts zu verändern (kein drawnow oder ähnliches da rein schreiben), sondern das Problem anders zu lösen.

Hab es auch schon mit einem Timer versucht, der alle X Sekunden neu zeichnet, allerdings ohne Erfolg.

Ich befürchte, dass es gar nicht möglich ist - aber vielleicht hat ja doch jemand eine Lösung parat Smile

MfG
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 04.02.2009, 13:56     Titel:
  Antworten mit Zitat      
Hallo dib0r,
Verstehe ich nicht, warum funktioniert es mit Timer nicht?

Ich würde Endlosschleife durch Timer ersetzen, ansonsten muss man in der Schleife sowas wie pause einbauen, um kurzzeitig Kontrolle zu bekommen.

Mein Freund hat den Timer in der Play-Funktion implementiert, und das funktioniert ziemlich gut. Das Programm spielt eine in Einzelbilder aufgenommene Sequenz ab.

Er verändert während des Abspielens die Darstellungsparameter, und die Veränderungen werden gleich in die Bilder übertragen. Man kriegt so den Eindruck, als ob alles in "Echtzeit" abläuft.

Code:

figure;
plot (rand(1000,2));
t=timer('TimerFcn','disp(datestr(now,''HH:MM:SS.FFF''))',...
            'Period',0.01,...
            'ExecutionMode','fixedSpacing',....
            'ObjectVisibility','off')
start(t)
 


Edit:
Hab einwenig mit Timer weitergespielt:
Code:

function start_timer()
figure;
plot (rand(1000,2));
t = timer('TimerFcn','disp(datestr(now,''HH:MM:SS.FFF''))',...
    'Period',0.01,...
    'ExecutionMode','fixedSpacing',...
    'ObjectVisibility','off');
t2 = timer();
set(t2,'TimerFcn',{@stop_timer,t},'StartDelay',10)
start(t)
start(t2)


function stop_timer(t2,eventdata,t,varargin)
disp('Es sind 10 Sekunden vergangen, timer werden gestoppt und gelöscht!!!')
stop(t);
delete(t);
stop(t2);
delete(t2)
 
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 - 2024 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.