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

Bleibt die workspace im Hintergrund erhalten

 

Thomas K
Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 15.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2012, 16:08     Titel: Bleibt die workspace im Hintergrund erhalten
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 19.07.2012, 16:45     Titel:
  Antworten mit Zitat      
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.

Code:
function [out1, out2 ...] = fkt.-name(input1,...)

out1 = ...
out2 = ...
end
 


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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 20.07.2012, 08:22     Titel: Re: Bleibt die workspace im Hintergrund erhalten
  Antworten mit Zitat      
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
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.