|
|
Nur bestimmte Variablen im Workspace anzeigen lassen |
|
iMC117 |

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 10.06.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.07.2015, 11:34
Titel: Nur bestimmte Variablen im Workspace anzeigen lassen
|
 |
|
 |
|
Hallo,
in meinem Skript habe ich sehr viele Variablen definiert, die aus Matrizen, Vektoren und Structs bestehen. Diese erscheinen ja auch alle im Workspace. Nun möchte ich nur zwei bestimmte Variablen anzeigen lassen, damit mein Workspace nicht zugemüllt ist und ich eine bessere Übersicht habe.
Ich hab mir überlegt aus meinem Skript eine Funktion zu machen und diese Funktion dann in einem Steuerskript aufzurufen. So könnte ich die Outputs bestimmen und mir nur die zwei Variablen anzeigen lassen, die ich brauche.
In meinem Hauptskript sieht die Funktion so aus:
Die Funktion soll keine Inputs haben.
In meinem Steuerskript muss ich ja nun nur noch die Funktion aufrufen:
Die Funktion wird im Steuerskript nun richtig aufgerufen und alles funktioniert auch soweit, aber im Workspace erscheinen trotzdem alle Variablen. ich möchte aber, dass nur die Variablen Output1 und Output2 im Workspace erscheinen.
Mit diesem Code im Steuerskript hat es leider auch nicht geklappt:
Dann kommt nämlich die folgende Fehlermeldung:
Attempt to execute SCRIPT Test as a function:
C:\Users\Name\Desktop\Skriptordner\Test.m
Error in Steuerscript (line 5)
[Output1, Output2] = Test;
Kann mir jemand bitte helfen bei dieser Methode? Und gibt es auch andere Methoden, womit man bestimmte Variablen im Workspace ausblenden bzw. "unsichtbar" machen kann?
Grüße,
iMC
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.07.2015, 11:40
Titel:
|
 |
Hallo,
wurde die Funktion abgespeichert?
Soll wirklich C:\Users\Name\Desktop\Skriptordner\Test.m ausgeführt werden, oder vielleicht eine andere Test.m, die von der angegebenen Datei überlagert wird?
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 03.07.2015, 12:01
Titel: Re: Nur bestimmte Variablen im Workspace anzeigen lassen
|
 |
|
 |
|
Hallo iMC117,
Zitat: |
in meinem Skript habe ich sehr viele Variablen definiert, die aus Matrizen, Vektoren und Structs bestehen. Diese erscheinen ja auch alle im Workspace. Nun möchte ich nur zwei bestimmte Variablen anzeigen lassen, damit mein Workspace nicht zugemüllt ist und ich eine bessere Übersicht habe. |
Wenn Du alle Variablen aus einem Code in den Workspace des Callers einfügen möchtest, verwende ein Script.
Wenn Du nur bestimmte Variablen in den Workspace des Caller einfügen willst, verwende eine Funktion.
Wenn Du ein Script verwenden möchtest, das sich verhält wie eine Funktion, verwende eine andere Programmiersprache als Matlab.
Zitat: |
Ich hab mir überlegt aus meinem Skript eine Funktion zu machen und diese Funktion dann in einem Steuerskript aufzurufen. So könnte ich die Outputs bestimmen und mir nur die zwei Variablen anzeigen lassen, die ich brauche. |
Genau.
Zitat: |
In meinem Steuerskript muss ich ja nun nur noch die Funktion aufrufen:
|
Nein. Funktionen haben Outputs und die muss man speziell zuweisen. Das gilt für die
sin
Funktion genauso wie für selbstgeschriebene Funktionen:
Zitat: |
Die Funktion wird im Steuerskript nun richtig aufgerufen und alles funktioniert auch soweit, aber im Workspace erscheinen trotzdem alle Variablen. |
Wenn Du wirklich das laufen lässt, was Du hier gepostet hast, dürfen nicht alle sondern gar keine Variablen der Funktion
Test
im Caller erscheinen.
Zitat: |
Mit diesem Code im Steuerskript hat es leider auch nicht geklappt:
|
Doch. So klappt es.
Wenn nicht, passt Haralds Idee: Du rufst wohl die flasche Test.m Datei auf.
Zitat: |
Und gibt es auch andere Methoden, womit man bestimmte Variablen im Workspace ausblenden bzw. "unsichtbar" machen kann? |
Nach solchen magischen Tricks zu suchen erzeugt grundsätzlich Programme, die nicht debuggt werden können. Deshalb rate ich dringend dazu, lieber ordentliche Funktionen zu verwenden.
Gruß, Jan
|
|
|
iMC117 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 10.06.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.07.2015, 12:41
Titel:
|
 |
Vielen Dank für eure zwei Antworten. Lag tatsächlich an der Ordnerstruktur und nicht am Code. Hab es nun aufgeräumt und es funktioniert nun.
Eine letzte Frage noch dazu: Im Workspace wird eine weitere Variable angezeigt, nämlich "ans". Diese ist in meinem Skript nicht vorhanden. ich gehe mal davon aus, dass es für answer steht und es wie beim Taschenrechner ist. Kann ich die Variable "ans" irgendwie noch ausblenden? Ist nämlich derselbe Output wie Output1. Die erste Variable in der eckigen Klammer kommt also doppelt vor, einmal normal und einmal als ans.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.07.2015, 13:20
Titel:
|
 |
Hallo,
wenn du eine Funktion aufrufst, ohne Rückgabeargumente anzugeben, wird sie mit einem Rückgabeargument ans aufgerufen.
Wenn du die Funktion mit explizit genannten Rückgabeargumenten aufrufst, wird kein ans angelegt.
Es kann höchstens sein, dass das noch von einem vorherigen Aufruf im Workspace war.
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 04.07.2015, 17:39
Titel:
|
 |
Hallo iMC117,
Zitat: |
Im Workspace wird eine weitere Variable angezeigt, nämlich "ans". |
Du kannst mit dem Debugger heraus finden, wo diese Variable erzeugt wird.
Gruß, Jan
|
|
|
iMC117 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 10.06.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.07.2015, 15:53
Titel:
|
 |
Vielen Dank euch beiden. Lag tatsächlich daran, dass ans noch vom vorherigen Aufruf noch im Workspace war.
|
|
|
|
|
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.
|
|