|
Lokdog |

Forum-Fortgeschrittener
|
 |
Beiträge: 96
|
 |
|
 |
Anmeldedatum: 07.04.16
|
 |
|
 |
Wohnort: Heilbronn
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.05.2016, 08:30
Titel: Clear all in Funktionen
|
 |
Hallo,
ich möchte nach beenden meiner "Hauptfunktion", meinen allgemeinen Workspace clearen.
Ich weiß, das jede Funktion ihren eigenen Workspace hat. Somit funktioniert der Befehl clear all in der Funktion nicht.
Wie sag ich nun meiner Funktion, dass ich meinen Hauptworkspace gecleared haben möchte?
Gruß und Danke
|
|
|
|
|
Lokdog |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 96
|
 |
|
 |
Anmeldedatum: 07.04.16
|
 |
|
 |
Wohnort: Heilbronn
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.05.2016, 08:33
Titel:
|
 |
Habe selbst die Antwort gefunden:
|
|
|
Mmmartina |

Forum-Meister
|
 |
Beiträge: 745
|
 |
|
 |
Anmeldedatum: 30.10.12
|
 |
|
 |
Wohnort: hier
|
 |
|
 |
Version: R2020a
|
 |
|
|
 |
|
Verfasst am: 12.05.2016, 09:00
Titel: Re: Clear all in Funktionen
|
 |
Lokdog hat Folgendes geschrieben: |
ich möchte nach beenden meiner "Hauptfunktion", meinen allgemeinen Workspace clearen. |
Dann sollte es mMn nach reichen, wenn du clear variables nutzt.
Denn clear all ist mit Kanonen auf Spatzen schießen, da alles inkl. Funktionen, Breakpoints, etc. gelöscht wird.
Schau mal in der Matlab Hilfe unter dem Punkt itemtype nach:
http://de.mathworks.com/help/matlab/ref/clear.html
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Zuletzt bearbeitet von Mmmartina am 12.05.2016, 09:52, insgesamt einmal bearbeitet
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 12.05.2016, 09:42
Titel:
|
 |
Hallo,
ich frage mich, warum das überhaupt notwendig ist.
Vielleicht sollte man da auch die Programmstruktur insgesamt überdenken.
Grüße,
Harald
|
|
|
Lokdog |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 96
|
 |
|
 |
Anmeldedatum: 07.04.16
|
 |
|
 |
Wohnort: Heilbronn
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.05.2016, 09:53
Titel:
|
 |
Das stimmt Harald, habe mir das auch schon überlegt.
Ich hatte es nicht geschafft, eine Variable aus meiner Hauptfunktion an meine "GUI" Funktion zu übergeben. Aus der GUI raus ging es dann relativ easy, mit eurer Hilfe & den handles.
Aber da es "nur" zwei Variablen sind, habe ich es halt mit evalin und assignin gemacht.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.05.2016, 10:17
Titel:
|
 |
Hallo Lokdog,
Statt Variablen in einem anderen Workspace zu löschen, wäre es viel sinnvoller und effizienter, erst gar keine unnötigen Kopien der Variablen zu erstellen. Variablen, die zu einem GUI gehören, sind genau innerghalb des GUIs gut aufgehoben und sie in den Base-Workspace zu schreiben ist im Allgemeinen überflüssig und damit verwirrend.
Auf ein
clear all
würde ich sowieso grundsätzlich immer verzichten, denn es löscht auch alle geladenen Funktionen aus dem Speicher. Das aufwändige Nachladen von der Festplatte raubt Zeit ohne irgendeinen Vorteil zu bringen.
Wenn man später mal die Programme erweitert und auch mal mehrere GUIs gleichzeitig offen hat, sind solche umfassenden Lösch- und Schließ-Methoden ausgesprochen unpraktisch, denn sie vernichten auch die Daten der anderen GUIs. Im Sinne des effizienten und flexibelen Programmierens ist der Ansatz also prinzipiell schlecht.
Gruß, Jan
|
|
|
Lokdog |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 96
|
 |
|
 |
Anmeldedatum: 07.04.16
|
 |
|
 |
Wohnort: Heilbronn
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.05.2016, 12:44
Titel:
|
 |
Hallo Jan,
wie gesagt, das ist mir bewusst, wenn du mir sagen kannst, wie ich eine Variable, meiner Hauptfunktion, aus der meine Unterfunktion(GUI) aufgerufen wird, übergeben kann, ist das mit dem
Geschichte
Also im Grunde sieht das ganze so aus:
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 12.05.2016, 13:21
Titel:
|
 |
Hallo,
und in der OpeningFcn der GUI ist xyz dann in varargin{1}
Grüße,
Harald
|
|
|
Lokdog |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 96
|
 |
|
 |
Anmeldedatum: 07.04.16
|
 |
|
 |
Wohnort: Heilbronn
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.05.2016, 06:48
Titel:
|
 |
Hallo Harald,
so würde ich ja dann mein varagin, meinen handles und somit dem GUI übergeben.
jedoch kommt beim ausführen dann folgende Fehlermeldung:
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.05.2016, 09:04
Titel:
|
 |
Hallo,
hast du Regler denn mit einem Argument aufgerufen?
Grüße,
Harald
|
|
|
Lokdog |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 96
|
 |
|
 |
Anmeldedatum: 07.04.16
|
 |
|
 |
Wohnort: Heilbronn
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.05.2016, 14:13
Titel:
|
 |
Das wars Jetzt habe ich aber in meiner Funktion:
eine Variable:
diese würde ich gern beim zweiten Aufrufen meine OpeningFunktion nutzen,
diese würde mein Programm auch erst beim zweiten mal aufrufen wollen,
jedoch sagt er mir, das "handles.Name" nicht existiert.
Woran könnte das liegen?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.05.2016, 14:37
Titel:
|
 |
Hallo,
weil du zwei verschiedene Instanzen der GUI hast und diese erstmal nicht miteinander kommunizieren.
Der sauberste Weg wäre, die aus der ersten Instanz benötigten Informationen über die OutputFcn zurückzugeben und das dann über die OpeningFcn in die zweite Instanz hineinzufüttern.
Grüße,
Harald
|
|
|
Lokdog |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 96
|
 |
|
 |
Anmeldedatum: 07.04.16
|
 |
|
 |
Wohnort: Heilbronn
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.05.2016, 14:54
Titel:
|
 |
Alles klar,
also wie das varargin funktioniert haben wir ja schon geklärt.
wenn ich nun z.B.
somit meinem Varargout1 mein handles.Name Variable zuordne, was muss dann im OpeningFN stehen?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.05.2016, 15:20
Titel:
|
 |
Hallo,
Daten ist die Variable, die du hin- und herschieben möchtest.
Grüße,
Harald
|
|
|
Lokdog |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 96
|
 |
|
 |
Anmeldedatum: 07.04.16
|
 |
|
 |
Wohnort: Heilbronn
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.05.2016, 11:32
Titel:
|
 |
Hallo Harald,
das hab ich jetzt noch nicht so genau verstanden
Gruß,
Philipp
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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 - 2025
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.
|
|