|
|
Abfrage ob Variable oder Datei überhaupt vorhanden |
|
nitzsche |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.05.2008, 23:14
Titel: Abfrage ob Variable oder Datei überhaupt vorhanden
|
 |
Ich habe zwei kleine Anliegen.
Wie kann ich testen ob etwa Variable xyz überhaupt vorhanden ist, also mit dem Namen überhaupt existiert, selbst wenn auch nur als leere syms.
Das gleiche möchte ich mit Dateien realisieren, also z.b. wenn ich per
Eine Datei aufrufen möchte, aber vorher prüfe, ob sie überhaupt vorhanden ist.
|
|
|
|
|
nschlange |

Ehrenmitglied
|
 |
Beiträge: 1.320
|
 |
|
 |
Anmeldedatum: 06.09.07
|
 |
|
 |
Wohnort: NRW
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 15.05.2008, 07:35
Titel:
|
 |
Hi,
ob eine Variable (und einige Dateitypen)existiert kannst Du mit
prüfen.
Für Dateien kannst Du Dir mit
oder
eine Dateiliste des Verzeichnis anlegen und dann gucken, ob die gewünschte Datei da drin ist.
Oder Du benutzt beim Öffnen
Kommst Du damit weiter?
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
|
|
|
schweikl_alex |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.08.2008, 17:54
Titel: exist in functions
|
 |
Wie kann ich denn in einer function herausfinden, ob im base workspace eine bestimmte variable existiert?
ich habe es mit exist(evalin('base','var')); probiert, ich wollte damit schauen ob es die Variable var im Workspace gibt.
geht das??? brauche dringend Hilfe!!!!
|
|
|
nschlange |

Ehrenmitglied
|
 |
Beiträge: 1.320
|
 |
|
 |
Anmeldedatum: 06.09.07
|
 |
|
 |
Wohnort: NRW
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 07.08.2008, 21:47
Titel:
|
 |
Hi,
hier ein paar Vorschläge wie man das machen könnte:
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
|
|
|
schweikl_alex |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.08.2008, 08:32
Titel: Danke!!!
|
 |
Vielen Dank für die schnelle Antwort!!!
Es funktioniert!!!!
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.10.2010, 14:50
Titel: exist problem
|
 |
Hallo,
ich habe ein ähnliches Problem.
Ich versuche mit dem Befehl exist() festzustellen ob eine Variable existiert.
Das ganze sieht dann folgendermaßen aus:
Damit bekomme ich diese Fehlermeldung:
??? Undefined variable or function myVar might refer to the function myVar.
Mir ist klar das die Variable myVar unter Umständen nicht existiert, aber genau das will ich ja hier abfangen. Was mach ich da falsch?
Grüße
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 12.10.2010, 15:27
Titel:
|
 |
Hallo
Eigentlich sollte es genau so funktionieren.
Bist du sicher, dass du Hochkommas in EXIST um myVar gesetzt hast?
Wenn ja, dann kommt der Fehler an Anderer Stelle zu Stande. Schreibt dir Matlab keine Zeile, wo Fehler geschieht? Setzte Debugger an.
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.10.2010, 15:40
Titel:
|
 |
Oje, ich hatte tatsächlich die Hochkommas vergessen
Danke.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.10.2010, 22:57
Titel:
|
 |
Liebes Forum,
Zwar kommt mein Kommentar mit zwei Jahren Verzögerung. Aber das Problem ist doch immer wieder zu finden:
EXIST ohne zweiten Input 'var' akzeptiert auch Java-Klassen, M-, P-, Mex- MDL-Files irgendwo im Matlab-PATH, und Ordner.
Deshalb ist "exist('name')" einerseits sehr langsam, und andererseits sehr tückisch. Also besser:
Gruß, Jan
|
|
|
rabauke |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.08.2012, 14:56
Titel:
|
 |
Kann mir jemand sagen, wie ich "nameinbase" nun als variable einsetze?
Ich möchte den inhalt von "nameinbase" im Workspace überprüfen lassen, quasi nach einer Benutzereingabe.
Leider bekomme ich die Zeile nur so eingerichtet, das Matlab tatsächlich jedes mal auf "nameinbase" überprüft. Danke!
|
|
|
mat_macs |

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 27.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.03.2013, 11:56
Titel:
|
 |
Das scheint der Thread der zu späten Antworten zu sein
Aber der Vollständigkeit halber meine Antwort auf rabaukes Frage.
Es ist zwar schwierig zu debuggen, funktioniert mit Übung für meine Zwecke allerdings prima:
Viele Grüße,
Max
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 28.03.2013, 13:30
Titel:
|
 |
Hallo,
es gibt kaum etwas, wofür EVAL wirklich nötig wäre.
Solange es funktioniert, schön. Wenn es aber mal nicht funktioniert, ärgert man sich beim Debuggen gerne maßlos - und würde sich dann wünschen, es ohne EVAL gemacht zu haben.
Oben z.B. hat sich selbst Jan bei EVALIN verhaspelt. Richtig wäre:
Und wenn man nicht in anderen Workspaces sucht (was man vermeiden sollte), ist das EVALIN auch hier unnötig.
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 28.03.2013, 20:37
Titel:
|
 |
Lieber Harald,
Ich nehme es als implizites Lob, dass "selbst" ich mich bei einem EVALIN-Befehl verhaspelt habe! Das war dann ja praktisch eine Demonstration zur Abschreckung :-)
Zitat: |
es gibt kaum etwas, wofür EVAL wirklich nötig wäre. |
Das kann ich nur voll und umfassend bestätigen: Es gibt immer eine bessere Lösung als EVAL(IN).
Das einzige Gegenbeispiel, dass mir in den letzten 10 Jahren begegnet ist, war das dynamische Erzeugen von globalen Variablen. Weil dies nicht möglich ist:
braucht man tatsächlich:
Aber (natürlich kommt hier ein ABER), globale Variablen dynamisch zu definieren ist eine wirklich doppelt schlechte Idee.
Frohge Ostern, Jan
|
|
|
mat_macs |

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 27.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.03.2013, 17:03
Titel:
|
 |
|
 |
|
Hallo Harald und hallo Jan,
ja habe auch schon mehrfach mitbekommen, dass man eval besser vermeiden sollte. Allerdings habe ich z.B. es derzeit mit Strukturen mit z.B. 10 und mehr Feldern zu tun. In Schleifen werden dann verschiedene Abfragen getätigt und Inhalte der Felder in eine andere Struct geschrieben.
Zum Beispiel: examin_area23.Position(1:10,1) sind die ersten 10 Zeilen eines Positionsvektors, der in der ersten Spalte Länge und in der zweiten Breite eingegeben hat. Und der Positionsvektor wird dem Untersuchungsgebiet 23 untergliedert. Allerdings gibt es mehrere examin_area - Structs in meinen zu untersuchenden Datensätzen und je nachdem welcher Positionsbereich für mich relevant ist, ob nun 1:10 oder 3:8 oder 24:47 (ergibt sich aus verschiedenen Bedingungen), muss ich halt an die Inhalte kommen.
Also ist mir (nach wie vor Anfänger und ohne Programmiererfahrung außerhalb von Matlab) nix besseres eingefallen als mit eval zu arbeiten.
Also in meinen Schleifen z.B. derart:
Es gibt sicher auch andere Möglichkeiten, aber nur um auf die Fragestellung von rabauke zu antworten, habe ich ihm den eval-Befehl als Hinweis geben wollen. Aber ich würde nun auch gern wissen, wie ich meine examin_area - Abfragen ohne eval machen kann, wenn alles dynamisch und in Abhängigkeit von verschiedenen Bedingungen abgefragt bzw. zugewiesen werden soll. Ihr würdet es mit "global" machen?
Frohe Ostern und viele Grüße,
Max
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 30.03.2013, 23:22
Titel:
|
 |
Hallo,
wenn sich die examin_area-Variablen nur durch die angehängte Nummer entscheiden, wäre ein Array solcher Strukturen sinnvoller. Zugriff dann mittels:
Grüße,
Harald
|
|
|
|
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.
|
|