|
|
schauen ob Variable definiert |
|
Jens2009 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.06.2009, 16:45
Titel: schauen ob Variable definiert
|
|
Hallo,
ich bräuchte einmal eure Hilfe:
ich möchte mit einer IF-Abfrage festellen ob die Variable x definiert ist oder nicht. Falls nicht soll sie mit x=[] definiert werden.
Allerdings kommt bei mir immer "Variable nicht definiert". Ich hab nichts passendes gefunden. Ist das überhaupt möglich?
Eine vorherige Definierung kommt aufgrund der Problemstellung nicht in Frage.
Kann mir jemand weiterhelfen?
|
|
|
|
|
ben |
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 21.08.08
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2007a, R2008b
|
|
|
|
|
|
Verfasst am: 23.06.2009, 16:54
Titel:
|
|
Hallo Jens,
der Befehl heißt exist, hier ein Beispiel:
Gruß, Ben
|
|
|
Coja |
Forum-Century
|
|
Beiträge: 166
|
|
|
|
Anmeldedatum: 20.06.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.06.2009, 16:59
Titel:
|
|
Hallo Jens.
Was verstehst du denn unter einer definierten Variable? Also wenn eine Variable im Worksspace steht, dann ist sie definert. Mit den Befehlen
ob die Variable keinen Eintrag enthält, die Variable wirklich existiert bzw. einen NaN-Eintrag enthält.
Ein If-Schleifen-Beispiel:
|
|
|
Jens2009 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.06.2009, 17:09
Titel:
|
|
DANKE für eure Hilfe.
Wieso funktioniert die erste Antwort nicht in einer funktion und die zweite schon?
|
|
|
Jens 2009 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.06.2009, 17:13
Titel:
|
|
Ich muss das korrigieren beim 2. klappts leider auch nicht so recht:
Fehler beim 1.: Variable fehlt
Fehler beim 2.: Variable nie definiert
Wie gesagt, das ganze soll in einer Funktion aufgerufen werden. Ohne gehts beides....
|
|
|
ben |
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 21.08.08
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2007a, R2008b
|
|
|
|
|
|
Verfasst am: 23.06.2009, 17:18
Titel:
|
|
In welchem Workspace soll die Variable denn liegen? Oder anders gefragt: Hast Du die Variable außerhalb der Funktion berechnet, oder wird die in der gleichen Funktion berechnet?
Wenn Du die außerhalb berechnet, dann musst Du die mit evalin übergeben.
Kenne gerade den Code nicht auswendig, die Hilfe ist da aber gut, bzw. gibt es hier im Forum sehr gute Bsp. dazu.
|
|
|
Jens2009 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.06.2009, 17:20
Titel:
|
|
Variable soll der Funktion übergeben werden oder eben nicht. Wenn sie nicht übergeben wurde muss sie als leer (x=[])definiert werden um keinen Programmabbruch zu bekommen.
|
|
|
ben |
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 21.08.08
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2007a, R2008b
|
|
|
|
|
|
Verfasst am: 23.06.2009, 17:24
Titel:
|
|
Schau mal, ob dich das weiter bringt:
Link
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 23.06.2009, 17:44
Titel:
|
|
Vielleicht reicht ganz simpel die Rückgabe des WHOS Befehls?
Andreas
|
|
|
Jens2009 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.06.2009, 17:47
Titel:
|
|
Ist so ein kleiner teufelskreis.
Da das Evalin auch nur funktioniert wenn die Variable im Workspace definiert ist. Ist sie das nicht
Immerhin hab ich es jetzt verstanden wie es funktioniert mit den Variablen und Funktionen.
Allerdings bleibt das Problem.
so geht es irgendwie auch nicht. Da existiert es dann nie
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 25.06.2009, 14:35
Titel:
|
|
Ich glaube das hat noch mit Cojas Frage zu tun was denn eine definierte Variable ist. Es ist ja eine Eigenschaft von MATLAB, dass es keine Definition braucht - man definiert sie erst durch die Zuweisung eines Wertes.
Andreas
|
|
|
Sylverblueice |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.07.2009, 12:44
Titel:
|
|
Mahlzeit zusammen,
Falls das Problem vorligen sollte, dass man die Existenz einer Variablen in 'base' in einer Funktion feststellen will, ein kleiner Tipp:
Nutzt die try-Funktion.
Ist zwar etwas zweckentfremdet, aber geht:
Man kann sich auch einen Indikator in Bool einbauen:
Die Varbieble hat hier im Funktionen-Workspace den Namen "In".
LG Sylver
|
|
|
|
|
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.
|
|