Wie kann ich endlos loopen, aber bei einigen Bedingungen anhalten?

8

Ich arbeite an einem Projekt in MATLAB. Es umfasst die kontinuierliche Aufzeichnung von Daten über die Temperatur, die von der seriellen Schnittstelle des Computers empfangen werden. Ich möchte es unendlich machen, also gibt es irgendeine Möglichkeit, unendliche Schleifen wie in C zu erzeugen?

Nun, wenn implementiert als:

%Vor%

wie Moore unten erklärt, gibt es dann irgendeine Möglichkeit, die Flags zu aktualisieren, so dass es je nach Bedarf oder einer anderen Operation beendet werden könnte?

Beispiel: Ich bin Plotten der Daten für meine 5 Knoten durch ZigBee Kommunikation dann, wenn diejenigen, die ich ausgewählt habe 4 Knoten auf Achse zu zeichnen, dann gibt es eine Möglichkeit, die Endlos-Schleife nach dem Start, so dass ich die Daten innerhalb der verwendeten ändern könnte Schleife durch eine Eingabemethode der GUI von MATLAB oder irgendein Flag?

    
skjoshi 19.12.2010, 05:14
quelle

2 Antworten

10

Für eine "unendliche" Schleife, die immer noch problemlos angehalten werden kann, wenn eine bestimmte Bedingung erfüllt ist, können Sie Ihre while condition , um eine logische Variable (dh Flagge) zu sein in deiner Schleife aktualisiert werden:

%Vor%

Eine while-Schleife kann auch beendet werden, wenn break oder return Befehl innerhalb der Schleife gefunden.


BEISPIEL:

Als Beispiel einiger GUI-gestützter Möglichkeiten, wie Sie eine Schleife stoppen können, gibt es hier ein Programm, das eine einfache GUI erstellt, die einen Zähler schrittweise jede Sekunde mit einer while-Schleife erhöht und anzeigt. Die GUI hat zwei Möglichkeiten, die Schleife zu stoppen: eine Schaltfläche oder q , während das Figurenfenster den Fokus hat (mit der Eigenschaft 'KeyPressFcn' der Abbildung, um den Code auszuführen, wenn eine Taste gedrückt wird. Speichern Sie diesen Code einfach in einer m-Datei irgendwo im MATLAB-Pfad und führen Sie ihn aus, um das Beispiel zu testen:

%Vor%

Im obigen Beispiel werden verschachtelte Funktionen verwendet, damit 'KeyPressFcn' und Der Button Callback kann auf den Wert von keepLooping im Arbeitsbereich der Funktion stop_watch zugreifen und diesen ändern.

    
gnovice 19.12.2010, 06:14
quelle
3
%Vor%     
Reese Moore 19.12.2010 05:18
quelle

Tags und Links