|
|
Bleibt die workspace im Hintergrund erhalten |
|
Thomas K |
Forum-Anfänger
|
|
Beiträge: 47
|
|
|
|
Anmeldedatum: 15.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.07.2012, 16:08
Titel: Bleibt die workspace im Hintergrund erhalten
|
|
Hallo,
jede Matlab-Funktion die ich aufrufe hat ihre eigene workspace soweit ich weiß. Meine Frage ist nun, ob diese workspace irgendwo im Hintergrund erhalten bleibt, wenn die Funktion in einer Schleife mehrmals aufgerufen wird, oder wird die workspace nach verlassen der Funktion wieder gelöscht?
Ich habe nämlich eine Funktion die nur einmal aufgerufen korrekte Werte liefert, wenn ich sie aber in einer Schleife aufrufe scheinbar willkürlich falsche Resultate liefert. Da dachte ich mir es kann vielleicht an in der workspace von letzten Aufruf liegen gebliebenen Variablen liegen.
Wenn es nicht an der workspace liegen sollte, woran kanns dann vielleicht noch liegen. Der Code stimmt ja eigentlich und tut auch das was er soll, nur sporadisch in einer Schleife nicht
Gruß, Thomas.
|
|
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 19.07.2012, 16:45
Titel:
|
|
Innerhalb einer Funktion angelegte Variablen sind lokal und werden nach dem Verlassen der Fkt. gelöscht.
Du kannst Variablen aber als Output der Funktion festlegen.
Oder du setzt einen Breakpoint in die Funktion und überprüftst so die lokalen Variablen. Mit F5 läßt du dann das Programm automatisch immer bis zum Breakpoint (mehrfach) laufen.
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 20.07.2012, 08:22
Titel: Re: Bleibt die workspace im Hintergrund erhalten
|
|
Hallo Thomas K,
Matlab ist, wie alle anderen Programmiersprachen, sehr ordentlich. Es "liegt" niemals etwas "herum", was der Benutzer nicht explizit "hingelegt" hat. Wenn Du also eine Variable nicht per PERSISTENT (siehe "help persistent") so gespeichert hast, dass sie im WorkSpace der funktion erhalten bleibt, wird sie beim Verlassen der Funktion gelöscht.
Deswegen hat es garantiert einen anderen Grund, dass Deine Funktion unerwartete Ergebnisse liefert. Der von DSP erwähnte Debugger ist natürlich die beste Lösung, den Fehler zu finden.
Gruß, Jan
|
|
|
|
|
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.
|
|