|
|
Persistent variable zurücksetzen |
|
pr1zZ |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 27.05.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.06.2013, 12:08
Titel: Persistent variable zurücksetzen
|
|
Hallo,
ich habe folgendes Problem:
Ich möchte eine Berechnung innerhalb einer embedded Matlab Funktion mehrmals ausführen abhängig vom Eingang.
Sobald der Eingang auf 1 ist, soll die Funktion ein paar Sachen berechnen und das Ergebnis ausgeben. Jedoch interessiert mich für die Zeit für die 1 anliegt nur das 1. Ergebnis --> isempty Überprüfung
Wenn der Eingang dann auf 0 springt, soll die Funktion nur noch 0 übergeben, und die persistent variable auf 0 setzen.
Bei einer neuen 1 will ich wieder die Berechnung starten, wobei mich wieder das 1. Ergebnis interessiert.
Jedoch kann ich die Variable weder clearen noch funktioniert es mit temp=[].
Hier mein Code:
Wäre cool wenn ihr mir sagen könntet woran es liegt.
Danke!
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.06.2013, 20:50
Titel:
|
|
Hallo,
was passiert denn, wenn du die Variable so zurücksetzt?
Wäre es nicht einfacher, sie auf 1 zurückzusetzen? Das ist ja quasi der Anfangswert.
Grüße,
Harald
|
|
|
pr1zZ |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 27.05.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.06.2013, 12:52
Titel:
|
|
Hallo,
Ich bekomme einen Fehler, der besagt, dass diese Funktion nicht kompiliert werden kann.
Das Problem ist folgendes:
Das Programm soll beim ersten mal, wenn Eingang==1 ist eine Berechnung ausführen und das Ergebnis so lange ausgeben, bis Eingang==0, dann soll der Ausgang ebenfalls 0 sein.
Sobald wieder eine 1 anliegt, soll wieder eine Berechnung ausgeführt werden.
Aus diesem Grund müsste ich es hinkriegen, dass temp wieder leer ist.
Ich hoffe das ist einigermaßen verständlich.
Danke für euer Bemühen!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 05.06.2013, 19:23
Titel:
|
|
Hallo,
bitte Fehlermeldungen kopieren, nicht interpretieren/übersetzen.
Wenn temp leer ist, wird es ja beim nächsten Durchlauf sofort auf 1 gesetzt.
Was spricht dann dagegen, temp auf 1 zu setzen?
Grundsätzlich klingt mir das, was du erreichen möchtest, sehr nach Enabled Subsystems. Wäre das eine Möglichkeit?
Grüße,
Harald
|
|
|
pr1zZ |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 27.05.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.06.2013, 08:04
Titel:
|
|
Zunächst: vielen Dank für deine Hilfe.
Ich habe das Problem wie du auch vorgeschlagen hast bereits mit einem Enabled Subystem gelöst ....
Dennoch würde mich interessieren warum es nicht möglich ist eine persistent variable (temp) auf den Ausgangszustand =[] zu setzen ....
Ist das so gewollt, oder war das ein Fehler von mir?
Wenn ich temp auf 1 setzen würde, würde die Berechnung bei jedem Zeitschritt gestartet. Das Problem daran wäre jedoch, dass dann jeweils andere Ergebnisse erreicht würden, da sich der Eingang mit der Zeit ebenfalls verändert.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|